PHP對接APP微信支付php
微信開放平臺手機APP支付總結html
1. 微信開放平臺手機APP支付總結json
支付功能連接: https://pay.weixin.qq.com/wiki/doc/api/index.htmlapi
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,業務流程是同樣的, 只要服務端作好處理將業務參數傳給客戶端便可. 還有一個要注意的問題, 是在退款時須要用到商戶的證書.
app
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 (數據最重要。)ide
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'].'×tamp='.$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