0%

H5 微信支付所遇到的若干问题

最近做了个H5微信支付的需求,记录一下所遇到的一些问题。。

在H5页面中,一开始我们是需要拿到微信用户的信息。因此需要调用获取用户的接口。
在第一次调用该接口时,需要有一个授权的过程。没有拿到用户信息的话,就需要调取授权让用户确认。

然后问题就来了授权完成后,会发现后端是拿不到cookie信息。经过查询资料后发现原来还是跨域在作祟
虽然我们解决了基本的跨域问题,即域名(origin)的不同。但是默认情况下跨域请求不会发送cookie.

这时前端需要设置XHRwithCredentials: true, 后端也需要配合设置Access-Control-Allow-Credentials即可。

axios 为例, withCredentials: truedata 平级:

1
2
3
4
5
6
7
8
9
10
const opt = {
url: '/user',
method: 'get',
data: {
name: 'jojo'
},
withCredentials: false,
}

axios(opt).then(res => console.log(res))

这种情况一般是前后端项目不在同一个域名的情况下,且需要带凭证的场景需要设置Credentials

url未注册(url not registered)

随后微信弹了一下url not registered的错误,检查支付目录已经正确的被配置。

相关资料

「请笔者喝杯奶茶鼓励一下」

欢迎关注我的其它发布渠道