找回密码
 立即注册
搜索

技术分享 快应用接入微信支付

6
回复
25487
查看
  [复制链接]

1

主题

4

帖子

325

积分

 楼主| 2018-6-1 18:29:27 显示全部楼层 |阅读模式
本帖最后由 tongwei 于 2018-6-1 19:25 编辑 微信APP支付: 如果之前没有在android端接入过微信支付,建议先看看微信官方文档快应用接入微信App支付的过程和这个流程介绍中的一致,无非是发起的客户端由android app变成了快应用 快应用接入微信App支付的步骤介绍: 1.使用快应用的包名编译一个android app. 主要用来走微信后台的注册流程,不用有内容,helloworld就可以了 2.将步骤1中的android app 注册到微信开放平台,并等待审核通过 主要注意的是,app的支付能力是需要单独申请的,期间需要用到公司执照,耗时大概一个星期左右. 走流程的过程中,微信后台需要填写app的包名签名,包名就是快应用的包名了,签名的获取需要用到微信提供的一个工具,在这个页面可以下载的到 3.完成服务端的接入. 按照微信官方的接入文档进行接入,接入完成之后,服务器能正常向客户端返回订单信息,并且返回的订单信息能够使用微信的校验工具校验通过 4.在快应用中进行配置 主要是在manifest.json中声明wxpay这个feature是填上走微信后台注册流程时用到的包名和签名 这里填的签名需要使用快应用的工具获取,获取的方法和微信的工具一致,但是得到值和微信的不一样,不要和微信的签名混淆. 快应用接入微信支付的官方文档 微信H5支付: 如果之前没有在h5网站中接入过微信支付能力,建议先看看微信官方文档 快应用中接入微信H5支付和微信文档中介绍的一致,快应用只是提供了一个运行H5网页的webView,使用h5页面拉起微信支付的能力给开发者提供微信支付的接口 快应用接入微信H5支付的步骤: 1.在微信开放平台新注册申请一个H5网站 https://open.weixin.qq.com/cgi-bin/frame?t=home/web_tmpl&lang=zh_CN 2.完成支付服务端的接入. 按照微信官方的文档完成服务端的接入,服务器要完成的工作是接收来自客户端的支付请求,然后生成一个订单,之后把订单传给微信的服务器,微信会返回一个mweb_url,服务器需要把这个mweb_url返回给客户端. 3.完成一个中间跳转页面 中间页需要在加载完成的时候从页面的get参数中解析出 mweb_url , 然后自动向这个url跳转,不需要任何其他的内容,也不需要ui 关于这个中间页: 1)为什么需要这个中间页? 因为微信h5支付拉起支付界面的方式就是向mweb_url跳转,不过因为微信会通过ref做防盗链检查,因为跳转动作需要在开发者的页面中完成 2)这个中间页什么时候会被加载运行? 调用微信支付的pay接口之后,平台会自动加载运行这个页面 3)加载运行这个中间页的时候,会拿到哪些参数? 调用微信支付的pay接口时传入的参数,会全部作为get参数传给这个页面 3.在快应用中进行配置中间页地址 在manifest.json中声明wxpay这个feature时填上, 参考快应用官方文档中接口声明的url字段 FAQ: 1.我可以指定使用微信h5支付吗? 不可以,H5支付是App支付的fallback方案,如果可以app支付,不会fallback到h5支付. 具体应该使用那种支付方式,以getType的返回值为准. 2.app支付下,收到了2001错误,怎么处理? 2001错误是微信拒绝了支付请求, 可能的原因: 1).微信后台或者manifest.json中的签名配置错误 2).订单信息中的sign字段生成有误 3).android app的后台审核流程还未通过 3.微信h5支付下,没有拉起微信支付界面,什么原因? 检查中间页自动向mweb_url跳转的逻辑是否有生效,如果没有请修改中间页的逻辑. 另外,中间页因为不展示ui逻辑,只作跳转,因此除了js执行权限以外,其他的权限均未授予,包括常用的domStorage权限. 4.我们之前已经有一个上线了android app接入了微信支付,可以直接把这个app的包名和签名配置在快应用中使用吗? 不行,如果这么配置,快应用和android app同时发起微信支付时,会发生冲突. 附: manifest.json中微信支付的配置样例: { "name": "service.wxpay", "params": { "package": "com.your.package.name", "sign": "MIIDDTCCAfWgAwIBAgIEfiu92jANBgkqhkiG9w0BAQsFADA3MQswCQYDVQQGEwJVUzEQMA4GA1UEChMHQW5kcm9pZDEWMBQGA1UEAxMNQW5kcm9pZCBEZWJ1ZzAeFw0xNjA0MTMwNTUyMDhaFw00NjA0MDYwNTUyMDhaMDcxCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdBbmRyb2lkMRYwFAYDVQQDEw1BbmRyb2lkIERlYnVnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz/dFKLrU3NmabX/byI0vL5ctZkg64Yhas5dsvl6bZZO/FWrgR+ZWiCcVFLQt/CpzLj3fMpIBoUiEuqPVRJoZdRn4gML1oIfj1meM9X9HSQHXzXr0NkOZhOzrlGvuWuy0//m3I18I8V9HXka4xiT9xGBiiMTWbP90vj7fTU+B3Q0UQxbMibdZfap9gCn2QKq7Y8k73n9wLsbmznlHiBeL2kJAcVL+3EtEle1PZaN90w7YGjaKijuXwv8MS0guvzy63t2rqUjEL41wlBz+/DnzfdolAD6toN5aynuFan51pUqrY5CD9CQIbiTeJXgjsz8vaZotSj+61ISqy2sXrpySAwIDAQABoyEwHzAdBgNVHQ4EFgQUhtto5p0PfrnZlj12MpIF6gzYawEwDQYJKoZIhvcNAQELBQADggEBAJcNfFIJCWh9YIFzM7+eg4P9pNME+Q9Oug+NVA+g6+Vuhi2eFMBe29GnSr//EMpnluXhmfNy40whv9uUKdz4ekejDVyHucs8AvJI2cI5WhoenHO2jqw5IpsxIBqyca6zpXpElU35NZnqNoD9Rs5AZrEVxCB3AzhWviGe5QmxXqRMAVOju3X1B+Nv3dVvou9y64UI9mK3Z4Sz0gUNcYsyrSU3uPmCAYGgh/3/ygGZA9LL5a2jvWZVWPq2/+pFzWL10CbFLCXaWT0dJrxDbLWZcd/6N95kT0sMwVJkwL+v/jrnyXpCpbB7UaYw5JSLsWMnk+4/pSeAoDwcZIgdBlRYPmM=", "url": "https://your.transitional.page/para=value" } }, 微信工具抓取的签名样例: fcaa113908d343444c1894dc4b42ac13
回复

使用道具 举报

1

主题

4

帖子

25

积分

2018-8-9 16:56:44 显示全部楼层
快应用接入微信H5支付的步骤: 1.在微信开放平台新注册申请一个H5网站 请问这个H5网站是做什么用的,是用来做跳转的中间页吗?
回复

使用道具 举报

3

主题

11

帖子

70

积分

2019-7-1 17:47:49 显示全部楼层
3.微信h5支付下,没有拉起微信支付界面,什么原因? 检查中间页自动向mweb_url跳转的逻辑是否有生效,如果没有请修改中间页的逻辑. 另外,中间页因为不展示ui逻辑,只作跳转,因此除了js执行权限以外,其他的权限均未授予,包括常用的domStorage权限. 1.中间页的域名有没有要求? 2.提到的权限是什么?快应用中需要额外配置什么吗? 3.我用过各种重定向方法,快应用中都只返回final_url,却未调起微信支付,没有任何错误报告无法排查到底错在哪里
回复

使用道具 举报

3

主题

11

帖子

70

积分

2019-7-9 17:53:18 显示全部楼层
714916927@qq.co 发表于 2019-7-1 17:47 3.微信h5支付下,没有拉起微信支付界面,什么原因? 检查中间页自动向mweb_url跳转的逻辑是否有生效,如果 ...
一般都是服务器处理有问题,或者referer错了 就是错误报告不好排查,我用了笨方法,把返回的final_url进行访问,里面可以看到微信的一些错误 https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4 直至成功 总结:被后端坑了
回复

使用道具 举报

1

主题

5

帖子

30

积分

2019-7-11 19:48:59 显示全部楼层
714916927@qq.co 发表于 2019-7-1 17:47 3.微信h5支付下,没有拉起微信支付界面,什么原因? 检查中间页自动向mweb_url跳转的逻辑是否有生效,如果 ...
解决了吗?我也遇到这样的问题了
回复

使用道具 举报

11

主题

31

帖子

210

积分

QQ
2020-1-3 17:23:19 显示全部楼层
wanmi 发表于 2019-7-11 19:48 解决了吗?我也遇到这样的问题了
解决了没?
回复

使用道具 举报

2

主题

7

帖子

45

积分

2022-2-17 11:22:51 显示全部楼层
这两个错误。哪个错误离成功更进一步啊 WX PAY failed, code = 2001 WX PAY cancelled by user (似乎在唤起微信,但是弹窗提示支付验证签名失败)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册