一箫一剑平生意,负尽狂名十五年。这篇文章主要讲述微信开放平台手机APP支付相关的知识,希望能为你提供帮助。
php对接APP微信支付
微信开放平台手机APP支付总结
1. 微信开放平台手机APP支付总结
支付功能链接: https://pay.weixin.qq.com/wiki/doc/api/index.html
【微信开放平台手机APP支付】APP支付功能文档: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3
Demo下载地址: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1
首先了解微信手机APP开放平台文档支付流程, 虽然个人感觉微信给出的文档没有支付宝官方给出的文档详细, 但是认真研究还是可以克服困难的, 有的问题在网上也是可以找到解决方案的. 微信开放平台和微信公众平台的所使用的demo使用的都是同一个JsApi的demo,业务流程是一样的, 只要服务端做好处理将业务参数传给客户端即可. 还有一个要注意的问题, 是在退款时需要用到商户的证书.
2.
传递商户交易号和价格去微信进行生成预支付订单
利用微信统一下单方法生成预申请id
$input = new WxPayUnifiedOrder(); $input-> SetBody($body); $input-> SetAttach(‘‘test”); $input-> SetOut_trade_no($order_sn); $input-> SetTotal_fee($price); $input-> SetTime_start(date("YmdHis")); $input-> SetTime_expire(date("YmdHis", time() + 60*10)); //订单失效时间,报错可不写 $input-> SetGoods_tag("tag"); //设置商品标记,说明详见代金券或立减优惠 $input-> SetNotify_url($notify_url); //设置接收微信支付异步通知回调地址 $input-> SetTrade_type("APP"); //设置类型如下:JSAPI,NATIVE,APP $order_data = WxPayApi::unifiedOrder($input); //统一下单
注释:$order_data 为微信返回的订单生成结果。如下所示
appid mch_id nonce_str prepay_id result_code return_code return_msg
sign (签名,此时返回的签名不能给APP端调用,需要重新生成签名)
trade_type prepay_id (数据最重要。)
3. 将微信返回的prepay_id数据再次签名,再返回给APP端。
获取到 prepay_id 后,将参数 appid、noncestr、package(注意:Sign=WXPay)、partnerid、prepayid、timestamp 签名后返回给 APP。
$order_data[‘timestamp‘] = time(); $str = ‘appid=‘.$order_data[‘appid‘].‘& noncestr=‘.$order_data[‘nonce_str‘].‘& package=Sign=WXPay& partnerid=‘.WxPayConfig::MCHID.‘& prepayid=‘.$order_data[‘prepay_id‘].‘& timestamp=‘.$order_data[‘timestamp‘]; $order_data[‘sign‘] = strtoupper(md5($str.‘& key=‘.WxPayConfig::KEY)); echo json_encode($order_data);
4. 支付完成回调处理
可参考demo回调处理方法notify.php进行业务逻辑处理即可.
支付完成! 可根据自己的业务流程修改业务逻辑 .
参考链接: http://blog.csdn.net/shihunzhe/article/details/53535838
本文出自 “Mine” 博客,请务必保留此出处http://pilipala.blog.51cto.com/10165737/1917634
推荐阅读
- Android后台执行的定时器实现
- 安卓开源项目周报0419
- Android开发混淆使用手册
- 小程序对移动app市场有怎样的冲击
- 编译器的两种解析器
- 如何在Python中使用TensorFlow 2和Keras预测股票价格()
- 如何在Python中使用OpenCV和PyTorch实现YOLO对象检测()
- Python如何使用Tensorflow 2和Keras实现文本分类()
- 如何在Python中使用OpenCV模糊图像中的人脸()