在 QQ 小步伐中利用 qq.requestWxPayment 唤起微信支付(iOS 设备)
配景
按照官方文档写在 安卓 打开是没有问题的。可以正常支付。IOS会报错。走的是fail 。
由于如今小步伐无法唤出浏览器等其他应用。只能开接口本领。web-view方案直接否定。。
QQ文档
属性类型默认值必填说明urlstring是微信支付跳转链接,利用 服务端-同一下单哀求 获取refererstring是商户申请 H5 支付时提交的授权域名(例如 http://q.qq.com ),参考 微信H5支付文档、 申请规则说明successfunction否接口调用乐成的回调函数failfunction否接口调用失败的回调函数completefunction否接口调用竣事的回调函数(调用乐成、失败都会实行)- qq.requestWxPayment({
- url: "",
- referer: "",
- success(res) { },
- fail(res) { }
- })
复制代码 解决方案
在 iOS 设备上,qq.requestWxPayment 需要正确通报 referer 和 Referer 参数,以确保微信支付可以大概辨认哀求来源并正常唤起。
在 QQ 小步伐中,利用 qq.requestWxPayment 接口唤起微信支付时,发现 Android 设备可以正常唤起,但 iOS 设备无法唤起。颠末调试,发现关键在于正确通报 referer 和 Referer 参数。
关键点
- referer 和 Referer 参数:
- 这两个参数的作用是告诉微信支付哀求的来源(即 QQ 小步伐的域名或 URL)。
- 在 iOS 设备上,微信支付需要验证哀求的来源,因此必须正确通报这两个参数。
- 注意:referer 和 Referer 都需要通报,可能是由于微信支付在差别环境下对参数的巨细写敏感。
QQ文档是没有大写的Referer的,多传这个参数便可解决问题。。。
- url 参数:
- url 是微信支付的 H5 链接,通常由后端生成。
- redirect_url 是支付完成后跳转的 URL,通常是小步伐的某个页面。
- 回调函数:
- success:支付乐成后的逻辑。
- fail:支付失败后的逻辑。
- complete:支付完成后的逻辑(无论乐成或失败)。
官方例子改成
- qq.requestWxPayment({
- url: "",
- referer: "",
- Referer: "",
- success(res) { },
- fail(res) { }
- })
复制代码 代码示例
以下是一个完整的代码示例,展示了如何在 QQ 小步伐中利用 qq.requestWxPayment 唤起微信支付,并处理支付结果。
- qq.requestWxPayment({
- url: `${h5_url}`,
- referer: HTTP_REQUEST_URL, // 来源域名
- Referer: HTTP_REQUEST_URL, // 来源域名(大小写敏感)
- success: () => {
- },
- fail: (err) => {
- // 支付失败后的逻辑
- console.log('调起支付失败的原因', err);
- },
- complete: (res) => {
- // 支付完成后的逻辑(无论成功或失败)
- }
- });
复制代码 参数说明
- h5_url:微信支付的 H5 链接,由后端生成。
- HTTP_REQUEST_URL:QQ 小步伐的域名或 URL。
注意事项
- referer 和 Referer 参数:
- 确保它们的值与微信支付配置中的来源域名一致。
- 确保它们的巨细写正确。
- url 参数:
- 确保 url 是有效的微信支付 H5 链接。
- 确保 redirect_url 是有效的 URL,并且已正确编码。
- 调试与排查:
- 在 fail 和 complete 回调中打印日记,查抄是否有错误信息。
- 假如问题无法解决,可以接洽微信支付的技术支持团队,提供详细的日记和复现步调。
总结
通过正确通报 referer 和 Referer 参数,可以在 iOS 设备上乐成唤起微信支付。本文提供了完整的代码示例和注意事项,资助开辟者快速实现 QQ 小步伐中的微信支付功能。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |