最近在写公众号时候遇到个问题,项目比较简单,不需要获取用户信息,只有微信支付功能需要用到微信的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必