vux公众号项目中实现静默授权

xiaoxiao2021-02-28  39

    最近在写公众号时候遇到个问题,项目比较简单,不需要获取用户信息,只有微信支付功能需要用到微信的JS-SDK。由于微信支付需要获取用户的openId,获取openId需要先让用户授权获取code然后去用code换取access_token和openId。授权方式有两种:静默授权和拉起授权页面授权(关注公众号后不会拉起授权页),项目没有获取用户信息的需求所以选择了静默授权。详细流程请仔细阅读公众号开发文档。

            

读完文档后复制获取code接口,修改APPID和redirect_uri参数。在获取code时候报错    Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. 这是由于本地开发是在本地服务器代理请求接口的,而获取code的接口是不允许跨域的,导致服务器直接报错,解决方法就是直接使用window.location.href 把项目起始页的url替换为获取code的接口,让浏览器直接访问微信服务器。获取code成功后页面会直接重定向到redirect_uri指向的url,注意redirect_uri必须要 urlEncode 进行处理,如果是前端处理的话直接找个在线编码转换工具,把项目首页地址转码就可以了。如果没有跳转成功报错redirect_uri错误请仔细检查redirect_uri是否转码,如果已经转码请前往微信公众平台配置网页授权域名,注意授权域名必须是字符串,不带http://,经过ICP备案的,详细配置仔细阅读说明。

            

转载请注明原文地址: https://www.6miu.com/read-2400330.html

最新回复(0)