In diesem Artikel wird hauptsächlich der native Zahlungsimplementierungsprozess basierend auf einem dynamischen Link-QR-Code unter WeChat-Zahlung vorgestellt, in der Hoffnung, Partnern, die WeChat-Zahlungen entwickeln, Hilfe zu bieten
Hinweis:
WeChat Pay ist jetzt in Version 2 und Version 3 unterteilt. Diejenigen, die sich vor dem 10. September 2014 beworben haben, sind Version 2, und diejenigen, die sich danach beworben haben, sind Version 3. Die V3-Version von WeChat Pay verfügt nicht über den Parameter paySignKey. In diesem Artikel wird WeChat Pay v3 vorgestellt.
1. Produktinformationen generieren
Während des dynamischen Link-Zahlungsprozesses wird zuerst die Produkttransaktion generiert und dann die Zahlungstransaktion durchgeführt.
1. Vorbereitung der Produktinformationen
Definieren Sie hauptsächlich den Namen und den Preis des Produkts sowie die Transaktionsnummer. Der Code lautet wie folgt.
include_once("../WxPayPubHelper/WxPayPubHelper.php"); //使用统一支付接口 $unifiedOrder = new UnifiedOrder_pub(); //设置统一支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 $unifiedOrder->setParameter("body","贡献一分钱");//商品描述 $timeStamp = time(); $out_trade_no = WxPayConf_pub::APPID."$timeStamp"; $unifiedOrder->setParameter("out_trade_no","$out_trade_no");//商户订单号 $unifiedOrder->setParameter("total_fee","1");//总金额 $unifiedOrder->setParameter("notify_url",WxPayConf_pub::NOTIFY_URL);//通知地址 $unifiedOrder->setParameter("trade_type","NATIVE");//交易类型 //非必填参数,商户可根据实际情况选填 $unifiedOrder->setParameter("device_info","100001");//设备号
Die oben genannten Parameter werden schließlich in XML-Parameter ähnlich den folgenden gekapselt
<xml> <body><![CDATA[贡献一分钱]]></body> <out_trade_no><![CDATA[100001_1433009089]]></out_trade_no> <total_fee>1</total_fee> <notify_url><![CDATA[http://www.doucube.com/weixin/demo/notify_url.php]]></notify_url> <trade_type><![CDATA[NATIVE]]></trade_type> <device_info>100001</device_info> <appid><![CDATA[wx1d065b0628e21103]]></appid> <mch_id>1237905502</mch_id> <spbill_create_ip><![CDATA[61.129.47.79]]></spbill_create_ip> <nonce_str><![CDATA[gwpdlnn0zlfih21gipjj5z53i7vea8e8]]></nonce_str> <sign><![CDATA[C5A1E210F9B4402D8254F731882F41AC]]></sign> </xml>
2. Rufen Sie die einheitliche Zahlungsanforderung auf
um das obige XML an die einheitliche Zahlungsschnittstelle zu senden
https://api.mch.weixin.qq.com/pay/unifiedorder
Holen Sie sich die folgenden XML-Daten
<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> <appid><![CDATA[wx1d065b0628e21103]]></appid> <mch_id><![CDATA[1237905502]]></mch_id> <device_info><![CDATA[100001]]></device_info> <nonce_str><![CDATA[6u8ovTtFupTagsiY]]></nonce_str> <sign><![CDATA[E84D8BC2331766DD685591F908367FF1]]></sign> <result_code><![CDATA[SUCCESS]]></result_code> <prepay_id><![CDATA[wx20150531020450bb586eb2f70717331240]]></prepay_id> <trade_type><![CDATA[NATIVE]]></trade_type> <code_url><![CDATA[weixin://wxpay/bizpayurl?pr=dNp7omD]]></code_url> </xml>
Auf diese Weise erhalten Sie eine Code-URL
Das Programm generiert einen QR-Code aus der Code-URL und stellt ihn dann dem Benutzer zum Scannen zur Verfügung
Benutzerzahlung
1. Benutzerzahlung
Nachdem die Zahlung des Benutzers erfolgreich war, sendet WeChat eine XML-Benachrichtigung mit folgendem Inhalt an notify_url
<xml> <appid><![CDATA[wx1d065b0628e21103]]></appid> <bank_type><![CDATA[CFT]]></bank_type> <cash_fee><![CDATA[1]]></cash_fee> <device_info><![CDATA[100001]]></device_info> <fee_type><![CDATA[CNY]]></fee_type> <is_subscribe><![CDATA[N]]></is_subscribe> <mch_id><![CDATA[1237905502]]></mch_id> <nonce_str><![CDATA[gwpdlnn0zlfih21gipjj5z53i7vea8e8]]></nonce_str> <openid><![CDATA[oMNKHuBTW4YWgNGAVQW00tWK6auM]]></openid> <out_trade_no><![CDATA[100001_1433009089]]></out_trade_no> <result_code><![CDATA[SUCCESS]]></result_code> <return_code><![CDATA[SUCCESS]]></return_code> <sign><![CDATA[03EEDE7ADE2ABB7916795F37F19A3D13]]></sign> <time_end><![CDATA[20150531020838]]></time_end> <total_fee>1</total_fee> <trade_type><![CDATA[NATIVE]]></trade_type> <transaction_id><![CDATA[1002750205201505310187709542]]></transaction_id> </xml>
Nach Erhalt von notification_url erfolgt eine Bestätigung Die Erfolgsmeldung wird an den WeChat-Server zurückgegeben
<xml> <return_code><![CDATA[SUCCESS]]></return_code> </xml>
Auf diese Weise wird ein dynamischer Native-Link abgeschlossen.
Verwenden Sie die Bestellabfrageschnittstelle, um die Bestellung abzufragen und Folgendes zurückzugeben
Transaktionsstatus: ERFOLGREICH
Gerätenummer: 100001
Benutzer-ID: oMNKHuBTW4YWgNGAVQW00tWK6auM
Gibt an, ob die Anweisungen befolgt werden sollen öffentliches Konto: N
Transaktionstyp: NATIVE
Zahlungsbank: CFT
Gesamtbetrag: 1
Bargutscheinbetrag:
Währungstyp: CNY
WeChat-Zahlungsauftragsnummer: 1002750205201505310187709542
Händlerbestellnummer: 100001_1433009089
Händlerdatenpaket: Array
Zahlungsabschlusszeit: 20150531020837
Das Obige ist die Sammlung von Informationen zum dynamischen WeChat-Zahlungslink Native Payment. Ich hoffe, es kann Freunden helfen WeChat-Zahlung entwickeln.
Das obige ist der detaillierte Inhalt vonDynamischer Link zur WeChat-Zahlungsentwicklung. Beispielcode für native Zahlungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!