Heim  >  Artikel  >  php教程  >  thinkphp3.2.3 WeChat payment_scan code payment_with callback

thinkphp3.2.3 WeChat payment_scan code payment_with callback

WBOY
WBOYOriginal
2016-09-23 03:29:583022Durchsuche

Ändern Sie den Beispielcode der WeChat-Zahlung in den direkt in tp verwendeten Beispielcode und führen Sie einfach die Scan-Code-Zahlungs- und Rückruffunktion aus
Ändern Sie den WeChat-Zahlungsbeispielcode in den direkt in tp verwendeten Beispielcode und führen Sie einfach Scancode-Zahlungs- und Rückruffunktionen aus
Modus 2 wird verwendet. Bei Bedarf können Sie den Code direkt im Modus 1 ausführen.
Klassenimport Werfen Sie einen Blick auf meinen Import und Sie werden verstehen, wie man ihn importiert. Sie müssen sich über diese Dinge keine Sorgen mehr machen.
Die Codereferenz lautet wie folgt
Beispielcode zum Generieren eines Zahlungs-QR-Codes: public function index() {<br> Importieren ( "@.Controller.WxPay.WxPayNativePay" );<br>         $notify = new WxPayNativePay ();<br>         $url1 = $notify->GetPrePayUrl ( "123456789" );<br> ​​​​//Modus 2<br>           /**<br>           * Prozess: <br> * 1. Rufen Sie Unified Ordering auf, rufen Sie code_url ab und generieren Sie den QR-Code <br> ​​​​​* 2. Benutzer scannen den QR-Code, um die Zahlung vorzunehmen<br> * 3. Nachdem die Zahlung abgeschlossen ist, benachrichtigt Sie der WeChat-Server, dass die Zahlung erfolgreich war <br> * 4. In der Zahlungserfolgsbenachrichtigung müssen Sie die Bestellung überprüfen, um zu bestätigen, ob die Zahlung tatsächlich erfolgreich war (siehe: notify.php) <br>                                                                                      * @Time 22.09.2016 15:41:59 Uhr<br>                        */<br>              // $price = $_POST ['price'];<br>             // $prodect_id = $_POST ['prodect_id'];<br>              // $premission_name = $_POST ['premission_name'];<br>          $price = 0,01;<br>         $product_id = rand ( 2, 8 );<br>         $premission_name = $prodect_id;<br> ​​​​//Verarbeitung starten<br>         $input = new WxPayUnifiedOrder ();<br>         $input->SetBody ( "xxxx---" . $premission_name );<br>          $input->SetAttach ("xxxxx-Attach" );<br>         $input->SetOut_trade_no ( WxPayConfig::MCHID . date ( "YmdHis" ) );<br>          $input->SetTotal_fee ( $price * 100 );<br>         $input->SetTime_start ( date ( "YmdHis" ) );<br>         $input->SetTime_expire ( date ("YmdHis", time () 600 ) );<br>          $input->SetGoods_tag ( "xxx-tag" );<br>          $input->SetNotify_url ( "http://xxxx.com/wxtest/index.php/home/Index/notify" );<br>         $input->SetTrade_type ( "NATIVE" );<br>         $input->SetProduct_id ( rand ( 4, 8 ) );<br>          $result = $notify->GetPayUrl ( $input );<br>         $url2 = $result ["code_url"];<br> ​​​​//QR-Code generieren<br> ​​​​error_reporting (E_ERROR);<br> Importieren ( "@.Controller.WxPay.PHPQRCODE" );<br> $url = urldecode ( $url2 );<br>         QRcode::png ( $url );<br>}Beispielcode für die Verarbeitung von WeChat-Zahlungsrückrufen: /**<code class="prettyprint linenums lang-php">/**<br>      * @功能描述:微信支付回调处理<br>      * @作者 希尔瓦柯<br>      * @时间 2016-9-22下午3:41:59<br>      */<br>     public function notify() {<br>         // 获取微信回调的数据<br>         $notifiedData = $GLOBALS ['HTTP_RAW_POST_DATA'];<br>         // 加载相关的类<br>         import ( "@.Controller.WxPay.WxPayNativePay" );<br>         import ( "@.Controller.WxPay.WxPayData" );<br>         import ( "@.Controller.WxPay.WxPayNotify" );<br>         import ( "@.Controller.WxPay.PayNotifyCallBack" );<br>         $xml_to_arr = WxPayDataBase::FromXml_4_babbage ( $notifiedData );<br>         // 转成数组 并写入缓存<br>         F ( "wx_notified_data", $xml_to_arr);<br>         // 吧xml原型也写入xml<br>         F ( "wx_notified_data_xml", $notifiedData );<br>         <br>         // 给微信返回支付状态值<br>         $notify = new PayNotifyCallBack ();<br>         // 返回状态<br>         $notify->Handle ( false );<br>     } * @Funktionsbeschreibung: WeChat-Zahlungsrückrufverarbeitung
* @Autor Silvaco

* * @Time 22.09.2016 15:41:59 Uhrthinkphp3.2.3 WeChat payment_scan code payment_with callback ​​*/ Öffentliche Funktion notify() { ​​​​//WeChat-Rückrufdaten abrufen

$notifiedData = $GLOBALS ['HTTP_RAW_POST_DATA'];

​​​​//Laden Sie verwandte Klassen Importieren ( "@.Controller.WxPay.WxPayData" );

Importieren ( "@.Controller.WxPay.WxPayNotify" );

Importieren ( "@.Controller.WxPay.PayNotifyCallBack" );         $xml_to_arr = WxPayDataBase::FromXml_4_babbage ( $notifiedData ); ​​​​//In Array konvertieren und in den Cache schreiben ​​​​F ("wx_notified_data", $xml_to_arr);               // Schreiben wir auch den XML-Prototyp in XML ​​​​F ("wx_notified_data_xml", $notifiedData);                                                 ​​​​//Zahlungsstatuswert an WeChat zurückgeben         $notify = new PayNotifyCallBack (); ​​​​//Rückgabestatus          $notify->Handle ( false );                                     Ich hoffe, dass dies für Kollegen mit schwachen Fähigkeiten wie mich hilfreich sein kann wxpay4tp.zip ( 1,25 MB Download: 8 Mal )
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn