Pembangunan PHP: Bagaimana untuk melaksanakan fungsi pembayaran WeChat, contoh kod khusus diperlukan
Dalam proses mempopularkan dan pembangunan pembayaran mudah alih, Pembayaran WeChat telah Ia telah menjadi salah satu alat pembayaran yang dipercayai oleh majoriti pengguna. Sebagai pembangun PHP, menguasai dan melaksanakan fungsi pembayaran WeChat adalah sangat penting untuk laman web komersial atau aplikasi e-dagang. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP untuk melaksanakan fungsi pembayaran WeChat dan memberikan contoh kod khusus.
Sebelum bermula, kita perlu menyediakan syarat-syarat berikut:
#🎜 🎜#ID Permohonan (appid): ID aplikasi yang didaftarkan oleh pembangun pada platform terbuka WeChat
define('MCH_ID', '商户号'); define('APPID', '应用ID'); define('KEY', 'API密钥'); define('CERT_PATH', '证书路径');
Selepas pengguna mengklik butang pembayaran, kami perlu menjana pesanan pembayaran dan menyerahkannya kepada pembayaran WeChat pelayan untuk pemprosesan. Berikut ialah kod contoh mudah untuk menjana pesanan pembayaran:
function createOrder($body, $out_trade_no, $total_fee, $notify_url) { $params = array( 'appid' => APPID, 'mch_id' => MCH_ID, 'nonce_str' => uniqid(), 'body' => $body, 'out_trade_no' => $out_trade_no, 'total_fee' => $total_fee, 'spbill_create_ip' => $_SERVER['REMOTE_ADDR'], 'notify_url' => $notify_url, 'trade_type' => 'APP' ); $params['sign'] = generateSign($params); $xml = arrayToXml($params); $response = sendRequest('https://api.mch.weixin.qq.com/pay/unifiedorder', $xml); $result = xmlToArray($response); return $result; } function generateSign($params) { ksort($params); $string = ''; foreach ($params as $key => $value) { if ($key != 'sign' && $value != '') { $string .= "{$key}={$value}&"; } } $string .= "key=" . KEY; return strtoupper(md5($string)); } function arrayToXml($array) { $xml = "<xml>"; foreach ($array as $key => $value) { $xml .= "<{$key}><![CDATA[{$value}]]></{$key}>"; } $xml .= "</xml>"; return $xml; } function sendRequest($url, $data) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM'); curl_setopt($ch, CURLOPT_SSLCERT, CERT_PATH); curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM'); curl_setopt($ch, CURLOPT_SSLKEY, CERT_PATH); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $response = curl_exec($ch); curl_close($ch); return $response; }
Pelayan pembayaran WeChat akan menghantar hasil pembayaran ke URL panggilan balik pra-tetap kami melalui POST keputusan pembayaran dihuraikan dalam kod URL panggil balik dan operasi yang sepadan dilakukan mengikut keperluan. Berikut ialah contoh kod mudah untuk pemprosesan hasil pembayaran:
$xml = file_get_contents("php://input"); $data = xmlToArray($xml); if (isset($data['result_code']) && $data['result_code'] == 'SUCCESS') { // 支付成功,更新订单状态等操作 // ... $response = array( 'return_code' => 'SUCCESS', 'return_msg' => 'OK' ); } else { // 支付失败,记录错误日志等操作 // ... $response = array( 'return_code' => 'FAIL', 'return_msg' => 'ERROR' ); } $responseXml = arrayToXml($response); echo $responseXml;
Atas ialah kandungan terperinci Pembangunan PHP: Bagaimana untuk melaksanakan fungsi pembayaran WeChat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!