Angesichts der Beliebtheit der WeChat-Zahlung müssen immer mehr Websites die WeChat-Zahlungsfunktion integrieren. In diesem Artikel besprechen wir, wie man die WeChat-Zahlungsinitiierung und -Abfrage in PHP implementiert.
Um die WeChat-Zahlung in PHP zu initiieren, besteht der erste Schritt darin, die einheitliche Bestell-API der WeChat-Zahlung aufzurufen, um einen Vorauszahlungsauftrag zu generieren. Die API muss einige notwendige Parameter übergeben, darunter Händler-ID, Zahlungsbetrag, Bestellnummer, Rückruf-URL usw. Das Folgende ist ein Beispielcode:
<?php require_once('WxPayApi.php'); require_once('WxPayUnifiedOrder.php'); $order = new WxPayUnifiedOrder(); $order->SetBody('商品描述'); $order->SetOut_trade_no('订单号'); $order->SetTotal_fee('支付金额'); $order->SetNotify_url('回调URL'); $order->SetTrade_type('JSAPI'); $order->SetOpenid('用户OpenID'); $result = WxPayApi::unifiedOrder($order);
Nach dem Aufruf der einheitlichen Bestell-API müssen wir die Informationen zur Vorauszahlungsbestellung abrufen, einschließlich der Sitzungs-ID der Vorauszahlungstransaktion (prepay_id) und anderer notwendiger Parameter. Das Folgende ist ein Beispielcode:
<?php require_once('WxPayApi.php'); require_once('WxPayData.php'); $input = new WxPayData(); $input->SetBody('商品描述'); $input->SetOut_trade_no('订单号'); $input->SetTotal_fee('支付金额'); $input->SetNotify_url('回调URL'); $input->SetTrade_type('JSAPI'); $input->SetOpenid('用户OpenID'); $result = WxPayApi::unifiedOrder($input); $prepay_id = $result['prepay_id']; $params = [ 'appId' => $result['appid'], 'timeStamp' => time(), 'nonceStr' => $result['nonce_str'], 'package' => "prepay_id={$prepay_id}", 'signType' => 'MD5' ]; $params['paySign'] = WxPayApi::getSign($params);
Nachdem wir die Prepaid-Bestellinformationen erhalten haben, können wir die erhaltenen Parameter an das Frontend übergeben, damit der Benutzer die Zahlung im WeChat-Client veranlassen kann. Das Folgende ist ein Beispielcode:
<?php echo '<script language="javascript">'; echo 'WeixinJSBridge.invoke("getBrandWCPayRequest", { "appId":"'.$params['appId'].'", "timeStamp":"'.$params['timeStamp'].'", "nonceStr":"'.$params['nonceStr'].'", "package":"'.$params['package'].'", "signType":"'.$params['signType'].'", "paySign":"'.$params['paySign'].'" }, function(res){ if(res.err_msg == "get_brand_wcpay_request:ok" ){ alert("支付成功"); }else{ alert("支付失败"); } });'; echo '</script>';
Nach Abschluss der Zahlung müssen wir die Zahlungsergebnisse abfragen, um sicherzustellen, dass die Transaktion erfolgreich abgeschlossen wurde. Das Folgende ist ein Beispielcode:
<?php require_once('WxPayApi.php'); $input = new WxPayOrderQuery(); $input->SetOut_trade_no('订单号'); $result = WxpayApi::orderQuery($input); if ($result['trade_state'] == 'SUCCESS') { echo '支付成功'; } else { echo '支付失败'; }
Zusammenfassung:
Das Obige ist der gesamte Prozess der Initiierung und Abfrage der WeChat-Zahlung in PHP. Wenn wir die WeChat-Zahlung auf der Website integrieren müssen, können wir die oben genannten Schritte ausführen. Es wird empfohlen, für die Entwicklung das offiziell bereitgestellte SDK zu verwenden, was viel Zeit und Energie sparen kann.
Das obige ist der detaillierte Inhalt vonImplementierung der WeChat-Zahlungsinitiierung und -Abfrage in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!