公众号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网页支付还是蛮简单的。

支付完以后会回到原来的支付页面,这个页面微信是建议我们做一个用户确认付款的处理。其实。。这个做也可以

不做也可以。做的话,就需要调用它的订单查询接口。就是多用一个接口的事,不做的话感觉给人一种不满足感,最好还是做吧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
2018-09-03 php服务端微信支付整理SDK,封装,如果喜欢请给个好评!谢谢 说明: 配置在 WeChatConfig文件下 环境:php5.6,基于tp5开发 调用统一下单接口: include_once EXTEND_PATH . 'WeChatSDK/WeChatSDK.php'; $data = $this->getOrderInfo($pay_sn); if (!$data) { return $this->resultCode(-2019, '订单不存在或已支付'); } $WeixinPay = new \WeChatSDK(); if ($trade_type == 'JSAPI') { //目前未有此功能 $openid = ''; $product_id = ''; } if ($trade_type == 'NATIVE') { $openid = ''; $product_id = $pay_sn; } if ($trade_type == 'MWEB') { $openid = ''; $product_id = $pay_sn; } if ($trade_type == 'APP') { $openid = ''; $product_id = $pay_sn; } $out_trade_no = $pay_sn; $result = $WeixinPay->setWeiXinPay($data['pay_body'], $data['pay_detail'], $data['pay_money'] * 100, $out_trade_no, $red_url, $trade_type, $openid, $product_id); APP加密:$WeChatSDK->GetAppParameters($result['data']); web编码 $WeChatSDK->GetMwebApiParameters(); jsapi:WeChatSDK-> GetJsApiParameters(); 回调调用: include_once EXTEND_PATH . 'WeChatSDK/WeChatSDK.php'; Log::write("gwgwgwgw---------------------------------进入异步回掉"); $postStr = file_get_contents('php://input'); Log::write("gwgwgwgw---------------------------------" . $postStr); $WeChatSDK = new \WeChatSDK(); if (!empty($postStr)) { $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $check_sign = $WeChatSDK->checkSign($postObj, $postObj->sign); Log::write('-----check_sign-------' . $check_sign . '------------check_sign--------------'); if ($postObj->result_code == 'SUCCESS' && $check_sign == 1) { model('order', 'service')->affirmPayment($postObj->out_trade_no); $xml = "<xml> <![CDATA[SUCCESS]]></return_co
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值