Leitfaden zur Online-Zahlungs- und Rückerstattungsabwicklung mit PHP und Miniprogrammen
Mit der kontinuierlichen Entwicklung des E-Commerce beginnen immer mehr Unternehmen, Online-Zahlungs- und Rückerstattungsfunktionen zu nutzen, um Verbrauchern bequeme und schnelle Zahlungsmethoden anzubieten. Als häufig verwendete serverseitige Programmiersprache kann PHP mit kleinen Programmen kombiniert werden, um Online-Zahlungs- und Rückerstattungsfunktionen zu realisieren. In diesem Artikel wird die Verwendung von PHP und Miniprogrammen zur Entwicklung von Online-Zahlungs- und Rückerstattungsfunktionen vorgestellt und Codebeispiele als Referenz für die Leser bereitgestellt.
1. Online-Zahlungsfunktion
Zuerst müssen wir ein Händlerkonto und einen Schlüssel sowie die WeChat-Zahlungs-API-Schnittstelle vorbereiten. Im Miniprogramm können wir die Zahlungsschnittstelle des Miniprogramms von WeChat Pay verwenden, um die Zahlungsfunktion abzuschließen. Einzelheiten finden Sie in der Entwicklungsdokumentation von WeChat Payment.
Auf der Front-End-Seite des Miniprogramms können wir die Methode wx.requestPayment() von WeChat Pay verwenden, um die Zahlungsfunktion zu aktivieren. Der spezifische Code lautet wie folgt:
wx.requestPayment({ 'timeStamp': '', 'nonceStr': '', 'package': '', 'signType': 'MD5', 'paySign': '', 'success': function(res){ // 支付成功的回调函数 }, 'fail': function(res){ // 支付失败的回调函数 } })
Bei dieser Methode müssen wir einige Zahlungsparameter wie Zeitstempel, Zufallszeichenfolge, Bestellinformationen usw. übergeben. Diese Parameter können serverseitig abgerufen werden. Weitere Informationen finden Sie in der Entwicklungsdokumentation von WeChat Payment.
Auf der Serverseite müssen wir PHP verwenden, um Zahlungsanforderungen zu verarbeiten. Der spezifische Code lautet wie folgt:
<?php $appid = 'your_appid'; // 小程序的appid $mch_id = 'your_mch_id'; // 商户号 $key = 'your_key'; // 商户密钥 $body = '商品描述'; $out_trade_no = '订单号'; $total_fee = '总金额'; $params = array( 'appid' => $appid, 'mch_id' => $mch_id, 'nonce_str' => md5(rand()), 'body' => $body, 'out_trade_no' => $out_trade_no, 'total_fee' => $total_fee, 'spbill_create_ip' => $_SERVER['REMOTE_ADDR'], 'trade_type' => 'JSAPI', 'openid' => '用户openid' ); ksort($params); $string = http_build_query($params); $string = urldecode($string).'&key='.$key; $sign = strtoupper(md5($string)); $params['sign'] = $sign; $xml = '<xml>'; foreach ($params as $key => $value) { $xml .= '<'.$key.'>'.$value.'</'.$key.'>'; } $xml .= '</xml>'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api.mch.weixin.qq.com/pay/unifiedorder'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); $result = simplexml_load_string($result); $prepay_id = $result->prepay_id; // 预支付id $params = array( 'appId' => $appid, 'timeStamp' => time(), 'nonceStr' => md5(rand()), 'package' => 'prepay_id='.$prepay_id, 'signType' => 'MD5' ); ksort($params); $string = http_build_query($params); $string = urldecode($string).'&key='.$key; $sign = strtoupper(md5($string)); $params['paySign'] = $sign; echo json_encode($params); ?>
In diesem Code müssen wir zunächst eine Signatur basierend auf dem Händler generieren Konto und Schlüssel hinzufügen und die relevanten Parameter hinzufügen. Die Parameter werden in eine XML-Formatzeichenfolge gespleißt und die Zahlungsanforderung wird über cURL an die WeChat-Zahlungsschnittstelle gesendet. Nachdem wir das Rückgabeergebnis erhalten haben, fügen wir die Vorauszahlungs-ID im Ergebnis in eine andere Signatur ein und geben dann die relevanten Parameter an das Applet zurück.
2. Rückerstattungsfunktion
Auf der Front-End-Seite des Miniprogramms können wir die Methode wx.request() verwenden, um eine Rückerstattungsanforderung zu initiieren. Der spezifische Code lautet wie folgt:
wx.request({ url: 'https://your_domain.com/refund.php', method: 'POST', data: { 'out_trade_no': '订单号', 'refund_fee': '退款金额' }, success: function(res){ // 退款成功的回调函数 }, fail: function(res){ // 退款失败的回调函数 } })
Auf der Serverseite müssen wir PHP verwenden, um Rückerstattungsanfragen zu bearbeiten:
<?php $appid = 'your_appid'; // 小程序的appid $mch_id = 'your_mch_id'; // 商户号 $key = 'your_key'; // 商户密钥 $out_trade_no = '订单号'; $refund_fee = '退款金额'; $params = array( 'appid' => $appid, 'mch_id' => $mch_id, 'nonce_str' => md5(rand()), 'out_trade_no' => $out_trade_no, 'out_refund_no' => $out_trade_no, 'total_fee' => $refund_fee, 'refund_fee' => $refund_fee ); ksort($params); $string = http_build_query($params); $string = urldecode($string).'&key='.$key; $sign = strtoupper(md5($string)); $params['sign'] = $sign; $xml = '<xml>'; foreach ($params as $key => $value) { $xml .= '<'.$key.'>'.$value.'</'.$key.'>'; } $xml .= '</xml>'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api.mch.weixin.qq.com/secapi/pay/refund'); curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM'); curl_setopt($ch, CURLOPT_SSLCERT, 'cert.pem'); curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM'); curl_setopt($ch, CURLOPT_SSLKEY, 'key.pem'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); $result = simplexml_load_string($result); if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS') { // 退款成功的处理逻辑 } ?>
Diesen Code benötigen wir zuerst Um das Händlerkonto und den Schlüssel zu verwenden, generieren Sie eine Signatur, verketten Sie die relevanten Parameter in einer XML-Formatzeichenfolge und senden Sie die Rückerstattungsanforderung über cURL an die WeChat-Zahlungsschnittstelle. Nachdem wir das Rückgabeergebnis erhalten haben, können wir anhand des Rückgabecodes und des Ergebniscodes im Ergebnis feststellen, ob die Rückerstattung erfolgreich war.
3. Zusammenfassung
Durch die oben genannten Schritte können wir PHP und Miniprogramme verwenden, um Online-Zahlungs- und Rückerstattungsfunktionen zu entwickeln. In praktischen Anwendungen können Funktionen auch je nach Bedarf erweitert werden, beispielsweise um Bestellanfragen, Rückerstattungsanfragen und andere Funktionen. Ich hoffe, dieser Artikel wird Ihnen bei der Verwendung von PHP und Miniprogrammen zur Entwicklung von Online-Zahlungs- und Rückerstattungsfunktionen hilfreich sein.
Das obige ist der detaillierte Inhalt vonLeitfaden zur Online-Zahlungs- und Rückerstattungsabwicklung mit PHP und Miniprogrammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!