1. 1 在 App 接入微信 H5 支付, 需要注意的问题:
1.由于 H5 链接来源不易追踪,商户需要特别注意做好防钓鱼、防刷单的处理,控制风险
2.微信 H5 支付的相比其他支付模式, 审核可能稍微严格一些
3.通过在 WebView 中手动设置 Referer, 可解决微信 H5 支付"商家参数格式有误"问题, 但对部分机型可能不兼容
4.iOS 支付完成/取消不会自动返回商家 App 或原浏览器(如 Chrome),而是跳到 Safari(将支付成功的回调 url 用 Scheme, 使 Safari 跳回 App, 但对开启"无痕模式" Safari 无效)
5.微信团队可能有 iOS 应用 scheme 白名单(京东、美团、猫眼电影、大众点评、饿了么等), 这些应用可以直接得到相应的微信 Scheme, 然后设置 package 参数 为 WAP 就不会跳出到 Safari
6.App 内嵌网页 H5 调起微信支付和支付完成返回 App 时, 页面出现空白(约 6 秒)
7.微信 H5 支付时,有时会需要用户授权,如果用户不同意,或者手机系统屏蔽授权请求,用户将无法使用微信 H5 支付
8.以上在 App 内调用 H5 支付常遇到的 [3]缺失Referer [4]跳出App [6] 短暂白屏问题, 需要在移动端代码解决
9.咨询微信官方客服时, 可能被回复 "App 内集成 H5 支付需要接收类似情况,建议集成 sdk 进行 App 支付"
10.微信 H5 支付不能直接在微信客户端内调起,也就是说通过微信分享、微信消息、微信扫网站链接二维码等方式, 在微信内部浏览器打开 H5 支付页无法支付. 这类场景支付适用的是"公众号支付方式"
1. 2 关于微信支付接入, 较成熟的参考示例项目多为 PHP 版本, 其次是 Java、NodeJS 版本. 而 Python 版本示例的较少. 参考示例大致可分为:
1.最简接入微信 H5 支付"统一下单"(不含退款等其他接口) - 官方 Demo [PHP版本]
2.微信 H5 支付 + 微信其他支付模式 - 微信支付单文件版 [PHP版本]、微信支付 SDK [NodeJS 版本]
3.微信系列支付 + 支付宝系列支付 - Alipay 和 WeChat 支付 SDK 扩展包 [PHP版本]
4.微信系列支付 + 支付宝系列支付 + 招商一网通支付 - Payment 支付聚合 [PHP版本]
1.3 参考资料
微信 H5 支付开发指南 - 前端相关流程介绍 [前端开发]
WebView 调起微信 H5 支付 - 商家参数格式有误 - 设置 Referer [Android]
UIWebView 调起微信 H5 支付 - 商家参数格式有误 - 无法直接返回 App - 设置 Referer, Scheme [iOS]
微信 H5 支付之回跳 Safari 浏览器 - 原因分析 [iOS、前端]
客户端 Deeplink 技术 [iOS、Android]
微信支付:H5 移动端支付实施细节手册 - 代码示例 [服务端、前端]
微信 H5 支付可能遇到的坑 [服务端、前端、Android、iOS]
开发步骤&常见问题 - 微信官方文档 [服务端、前端、Android、iOS]