Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie PHP zur Entwicklung der WeChat-Zahlungsfunktion
So verwenden Sie PHP zur Entwicklung der WeChat-Zahlungsfunktion
Als praktische Online-Zahlungsmethode ist die WeChat-Zahlung bei Händlern und Verbrauchern sehr beliebt. Für Entwickler ist die Verwendung der PHP-Sprache zur Entwicklung von WeChat-Zahlungsfunktionen eine sehr wichtige Aufgabe. In diesem Artikel wird die Verwendung von PHP zur Entwicklung von WeChat-Zahlungsfunktionen vorgestellt und entsprechende Codebeispiele bereitgestellt.
Bevor Sie mit der Entwicklung beginnen, müssen Sie zunächst die Zahlungsschnittstelle von WeChat beantragen und den entsprechenden API-Schlüssel und die Händlernummer erhalten. Melden Sie sich bei der WeChat Payment Developer Platform an, beantragen Sie die Zahlungsschnittstelle gemäß den Richtlinien und erhalten Sie den API-Schlüssel und die Händlernummer.
Bevor Sie mit der Entwicklung beginnen, stellen Sie sicher, dass Sie die PHP-Umgebung installiert und die entsprechenden Erweiterungen aktiviert haben: cURL-Erweiterung und openSL-Erweiterung. Diese beiden Erweiterungen werden in PHP zum Senden von HTTPS-Anfragen und zum Verschlüsseln von Daten verwendet und sind notwendige Erweiterungen zur Implementierung der WeChat-Zahlungsfunktionen.
Bevor Sie eine Zahlungsanforderung stellen, müssen Sie die relevanten Zahlungsparameter konfigurieren und eine Signatur gemäß dem WeChat-Zahlungsschnittstellendokument erstellen. Das Folgende ist ein Beispielcode:
// 配置支付参数 $params = [ 'appid' => 'YOUR_APPID', 'mch_id' => 'YOUR_MCH_ID', 'nonce_str' => md5(time() . mt_rand(0, 1000)), 'body' => '商品描述', 'out_trade_no' => '订单号', 'total_fee' => '支付金额', 'spbill_create_ip' => $_SERVER['REMOTE_ADDR'], 'notify_url' => '支付回调地址', 'trade_type' => 'JSAPI', 'openid' => '用户openid', ]; // 生成签名 $sign = ''; foreach ($params as $key => $value) { if ($key != 'sign' && $value != '') { $sign .= $key . '=' . $value . '&'; } } $sign .= 'key=' . 'YOUR_API_KEY'; // API密钥 $params['sign'] = strtoupper(md5($sign));
Initiieren Sie eine Zahlungsanforderung über die cURL-Bibliotheksfunktion und erhalten Sie die Informationen zur Prepaid-Bestellung. Das Folgende ist der Beispielcode:
$xml_data = "<xml>"; foreach ($params as $key => $value) { $xml_data .= "<" . $key . ">" . $value . "</" . $key . ">"; } $xml_data .= "</xml>"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api.mch.weixin.qq.com/pay/unifiedorder'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data); $response = curl_exec($ch); curl_close($ch); $result = simplexml_load_string($response); if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS') { $prepay_id = $result->prepay_id; // 保存prepay_id,用于后续支付 }
Zahlungsparameter über prepay_id generieren, das zum Aufrufen der WeChat-Zahlungsseite verwendet wird. Das Folgende ist der Beispielcode:
$nonce_str = md5(time() . mt_rand(0, 1000)); $prepay_params = [ 'appId' => 'YOUR_APPID', 'timeStamp' => time(), 'nonceStr' => $nonce_str, 'package' => 'prepay_id=' . $prepay_id, 'signType' => 'MD5', ]; $sign = ''; ksort($prepay_params); foreach ($prepay_params as $key => $value) { $sign .= $key . '=' . $value . '&'; } $sign .= 'key=' . 'YOUR_API_KEY'; // API密钥 $prepay_params['paySign'] = strtoupper(md5($sign));
Übergeben Sie die generierten Zahlungsparameter an das Front-End und rufen Sie die WeChat-Zahlungsschnittstelle über JS auf.
function onBridgeReady() { WeixinJSBridge.invoke( 'getBrandWCPayRequest', { 'appId': '<?php echo $prepay_params["appId"]; ?>', 'timeStamp': '<?php echo $prepay_params["timeStamp"]; ?>', 'nonceStr': '<?php echo $prepay_params["nonceStr"]; ?>', 'package': '<?php echo $prepay_params["package"]; ?>', 'signType': '<?php echo $prepay_params["signType"]; ?>', 'paySign': '<?php echo $prepay_params["paySign"]; ?>' }, function (res) { if (res.err_msg == "get_brand_wcpay_request:ok") { // 支付成功后的处理逻辑 } } ); } if (typeof WeixinJSBridge == "undefined") { if (document.addEventListener) { document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false); } else if (document.attachEvent) { document.attachEvent('WeixinJSBridgeReady', onBridgeReady); document.attachEvent('onWeixinJSBridgeReady', onBridgeReady); } } else { onBridgeReady(); }
Das Obige ist der gesamte Prozess der Entwicklung der WeChat-Zahlungsfunktion mit PHP. Mit diesen Codebeispielen können Sie die WeChat Pay-Funktionalität einfach implementieren und auf Ihre Website oder Anwendung anwenden. Ich wünsche Ihnen eine erfolgreiche Entwicklung!
Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP zur Entwicklung der WeChat-Zahlungsfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!