php微信h5支付
微信的支付都很麻烦,所以我我写下步骤方便以后查看
1.首先看微信的支付流程文档
what fuck,这种东西真的是给新人看的吗。既然看不怎么懂,那么我们一步一步按照步骤来吧
- 第一步:请求下单:我们去找下单的接口https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_20&index=1 我们这里看到需要一些参数,总结一下就是这些参数:
<appid>wx2421b1c4370ec43b</appid>
<attach>支付测试</attach>
<body>H5支付测试</body>
<mch_id>10000100</mch_id>
<nonce_str>1add1a30ac87aa2db72f57a2375d8fec</nonce_str>
<notify_url>http://wxpay.wxutil.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>MWEB</trade_type>
<scene_info>{"h5_info": {"type":"IOS","app_name": "王者荣耀","package_name": "com.tencent.tmgp.sgame"}}</scene_info>
<sign>0CB01533B8C1EF103065174F50BCA001</sign>
其他还好说,就是最后的这个签名sign有点麻烦。也是要按照文档来生成:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=4_3
那么我们就按照文档生成。
参数完成以后,那么就可以进行下一步
- 通过后台访问
“https://api.mch.weixin.qq.com/pay/unifiedorder”这个统一下单接口,记得带上上面的参数。
然后就可以得到一个支付跳转链接。我们拿到支付跳转链接后就
可以直接访问。因为该链接是个deep_link。你只要访问他微信的支付界面就会被拉起来。这个时候,支付中间页面就会显示
你之前设置的attach和body,就像这样
然后用户支付完以后就会访问上面设置的notify_url。
这个url可是很重要的,支付结果通知链接,我一般叫支付回调链接,用户支付完成后的操作都写在里面,
这个链接可不能随便乱写,有以下几个坑
坑1:该链接域名必须得在支付后台那里设置过的
坑2:该链接不能带参数,而且必须要能直接访问的
坑3:该链接嘚做重复处理,因为微信没接受到结果或者“微信收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。 (通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒)”。这是文档上的原画,理解起来就是,你不给回复或者微信抽风,就
有可能微信会调你的链接最多9次。你没做重复处理就完蛋咯
要注意的就是这些咯,微信H5网页支付还是蛮简单的。
支付完以后会回到原来的支付页面,这个页面微信是建议我们做一个用户确认付款的处理。其实。。这个做也可以
不做也可以。做的话,就需要调用它的订单查询接口。就是多用一个接口的事,不做的话感觉给人一种不满足感,最好还是做吧