博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信开放平台手机APP支付
阅读量:6982 次
发布时间:2019-06-27

本文共 1684 字,大约阅读时间需要 5 分钟。

            PHP对接APP微信支付


微信开放平台手机APP支付总结

1. 微信开放平台手机APP支付总结

支付功能链接

APP支付功能文档

Demo下载地址

    首先了解微信手机APP开放平台文档支付流程, 虽然个人感觉微信给出的文档没有支付宝官方给出的文档详细, 但是认真研究还是可以克服困难的, 有的问题在网上也是可以找到解决方案的. 微信开放平台和微信公众平台的所使用的demo使用的都是同一个JsApi的demo,业务流程是一样的, 只要服务端做好处理将业务参数传给客户端即可. 还有一个要注意的问题, 是在退款时需要用到商户的证书. 

2.  传递商户交易号和价格去微信进行生成预支付订单

利用统一下单方法生成预申请id

1
2
3
4
5
6
7
8
9
10
11
$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。

1
2
3
4
$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进行业务逻辑处理即可.

支付完成!  可根据自己的业务流程修改业务逻辑 .

参考链接: 

      本文转自噼里啪啦啦 51CTO博客,原文链接:http://blog.51cto.com/pilipala/1917634,如需转载请自行联系原作者


你可能感兴趣的文章
PHP7.3即将到来,快来了解一下新特性吧
查看>>
1月9日云栖精选夜读:场景化封装,一站式使用,普惠AI集成 ——阿里云发布智能媒体管理产品...
查看>>
Java Servlet Filter 详解
查看>>
区块链走向何方,或许从美国证劵史可以得到答案
查看>>
Golang web之http标准库简析
查看>>
项目冷启动,搭建MVP产品框架
查看>>
Python爬取网易云音乐歌单歌曲
查看>>
掘金markdown笔记快捷键
查看>>
[译] 为什么加密货币泡沫会破裂?
查看>>
Python 发送邮件
查看>>
图解git原理与日常实用指南
查看>>
程序员的职业发展:技术路线 v.s. 管理路线?
查看>>
简单高效的开发Android应用--KTea库的入门和进阶
查看>>
C++复习考点
查看>>
一道事件环面试题引发的思考
查看>>
url的校验
查看>>
Flex容器
查看>>
mysql Can't connect to MySQL server on '' (61)错误记录
查看>>
JVM垃圾回收机制
查看>>
深入剖析Vue源码 - 组件进阶
查看>>