微信公众号内唤起h5支付
2018-12-12 09:23:15来源:博客园 阅读 ()
1.调用统一下单的接口URL地址:https://api.mch.weixin.qq.com/pay/unifiedorder
2.调用统一下单必传参数:
appid:需要进行支付功能的公众号的appId
mch_id:微信分配的商户号
nonce_str:随机字符串,自己生成,要求在32位以内,微信官方文档推荐方式是调用随机数函数生成,将得到的值转换为字符串,主要用于保证签名不可测
sign:签名,通过签名算法生成,使用md5进行加密
body:商品描述,自定义,如对什么进行付款
out_trade_no:随机单号,要求是32个字符内,只能是数字、大小写字母_-|* 且在同一个商户号下唯一
total_fee:支付的金额,注意是以分为单位
spbill_create_ip:客户请求的地址
notify_url:你的回调地址
trade_type:交易类型,这里微信公众号支付为:JSAPI
3.其他可能需要但是非必传的参数:
sign_type:签名类型,默认是md5,还支持HMAC-SHA256
attach:此参数可自行传String类型的值,支付成功后微信会原样返回
参考微信官方api文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
4.调用统一下单之前先获取sign签名:
这里的generateSignature方法,只需要将传过去的集合遍历,按顺序用字符串拼接好,再进行md5的加密即可
5.调用统一下单:
把前面包含了sign的集合转成xml再用post的方式请求统一下单,返回统一下单的xml
<xml>
<appid>你的appId</appid>
<mch_id>你的商户Id</mch_id>
<nonce_str>70beD14citQ9QVXReoS6o032S00pTUvW</nonce_str>
<sign>7223ADBF584548B313EEACA0E11F77ED</sign>
<body>测试付款</body>
<out_trade_no>1310433801201812119763998320</out_trade_no>
<total_fee>1</total_fee>
<spbill_create_ip>客户请求的地址</spbill_create_ip>
<notify_url>回调地址</notify_url>
<trade_type>JSAPI</trade_type>
<attach>931</attach>
<openid>o4vANuJk1m7jSAwP67gqu6GMGSsA</openid>
</xml>
然后把返回的xml转成集合传到页面用于唤起H5的支付,之后进行二次签名,这个需要用appId,timeStamp,nonceStr,package,signType,paySign参数重新获取签名,这里注意在将xml转map的时候,微信公布的XEE的漏洞,如果是使用微信支付的sdk,那只需要更新就行。
页面唤起h5支付得代码(直接使用微信文档里面得,把值改成自己后台传过来得值就行):
后续再写微信浏览器外得H5支付......
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:HashMap深度解析
下一篇:面试题1
- SpringBoot实现微信小程序登录的完整例子 2020-06-01
- 如何利用Spring Boot 整合微信小程序实现登录与增删改查(含 2020-05-20
- Springboot整合微信小程序实现登录与增删改查 2020-05-01
- Android连载5-编写一个微信聊天界面 2020-04-16
- “微信支付”的架构到底有多牛逼?看完这篇你就明白了! 2020-03-31
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash