微信H5支付开发指南

来源:互联网 发布:北航网络继续教育学院 编辑:程序博客网 时间:2024/05/21 09:11
最近在QQ交流群看到,很多微信小白在问微信H5开发,怎么开发的问题。
对这个问题,根据我个人经验进行了一个必要条件的梳理,总结如下:


1.  必须具备备案的域名以及公网IP
2.  登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名“
3.  appId-微信公众号身份的唯一标识 Mchid-商户ID,身份标识Key-商户支付密钥KeyAppsecret-微信公众号秘钥
4.  H5页面的开发-引入js -http://res.wx.qq.com/open/js/jweixin-1.0.0.js 如果你的页面启用了https,务必引入 https://res.wx.qq.com/open/js/jweixin-1.0.0.js


WeixinJSBridge.invoke('getBrandWCPayRequest',{
"appId" : "wx2421b1c4370ec43b", //公众号名称,由商户传入
"timeStamp":" 1395712654",         //时间戳,自1970年以来的秒数
"nonceStr" : "e61463f8efa94090b1f366cccfbbb444", //随机串
"package" : "prepay_id=u802345jgfjsdfgsdg888",
"signType" : "MD5", //微信签名方式
"paySign" : "70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名
},
function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ) {
}
5. 如何获取prepay_id ,需要调用统一下单接口,根据成功的返回值,获取。


URL地址:https://api.mch.weixin.qq.com/pay/unifiedorder
 


Java代码实现参考 httpcomponents-client-4.3.4


请求参数:
<xml>
   <appid>wx2421b1c4370ec43b</appid>
   <attach>支付测试</attach>
   <body>JSAPI支付测试</body>
   <mch_id>10000100</mch_id>
   <nonce_str>1add1a30ac87aa2db72f57a2375d8fec</nonce_str>
   <notify_url>http://wxpay.weixin.qq.com/pub_v2/pay/notify.v2.php</notify_url>
   <openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid>
   <out_trade_no>1415659990</out_trade_no>
   <spbill_create_ip>14.23.150.211</spbill_create_ip>
   <total_fee>1</total_fee>
   <trade_type>JSAPI</trade_type>
   <sign>0CB01533B8C1EF103065174F50BCA001</sign>
</xml>


返回结果:
<xml>
   <return_code><![CDATA[SUCCESS]]></return_code>
   <return_msg><![CDATA[OK]]></return_msg>
   <appid><![CDATA[wx2421b1c4370ec43b]]></appid>
   <mch_id><![CDATA[10000100]]></mch_id>
   <nonce_str><![CDATA[IITRi8Iabbblz1Jc]]></nonce_str>
   <sign><![CDATA[7921E432F65EB8ED0CE9755F0E86D72F]]></sign>
   <result_code><![CDATA[SUCCESS]]></result_code>
   <prepay_id><![CDATA[wx201411101639507cbf6ffd8b0779950874]]></prepay_id>
   <trade_type><![CDATA[JSAPI]]></trade_type>
</xml>


注:参数值用XML转义即可,CDATA标签用于说明数据不被XML解析器解析。


6.签名(md5签名)


下面定义了一段生成sign字符串的示范过程:


假设以下为package传入参数:
appid=wxd930ea5d5a258f4f
auth_code=123456
body=test
device_info=123
mch_id=1900000109
nonce_str=960f228109051b9969f76c82bde183ac
out_trade_no=1400755861
spbill_create_ip=127.0.0.1
total_fee=1
key=8934e7d15453e97507ef794cf7b0519d
i:经过a过程URL键值对字典序排序后的字符串string1为:
appid=wxd930ea5d5a258f4f&auth_code=123456&body=test&device_info=123&mch_id=1900000109&nonce_str=960f228109051b9969f76c82bde183ac&out_trade_no=140075586


1&spbill_create_ip=127.0.0.1&total_fee=1




ii:经过b过程后得到sign为:
sign
=md5(string1&key=8934e7d15453e97507ef794cf7b0519d).toUpperCase
=md5


(appid=wxd930ea5d5a258f4f&auth_code=123456&body=test&device_info=123&mch_id=1900000109&nonce_str=960f228109051b9969f76c82bde183ac&out_trade_no=14007558


61&spbill_create_ip=127.0.0.1&total_fee=1&key=8934e7d15453e97507ef794cf7b0519d).toUpperCase()
="c380bec2bfd727a4b6845133519f3ad6".toUpperCase()
="C380BEC2BFD727A4B6845133519F3AD6"




 
提供微信教材与微信源码工程+一对一入门辅导,非诚勿扰:
咨询QQ:(928271079,提供优质的服务)








0 0
原创粉丝点击