


Bagaimana untuk melaksanakan pembayaran kod QR WeChat dalam PHP
Dengan populariti pembayaran mudah alih, WeChat telah menjadi salah satu kaedah pembayaran yang paling banyak digunakan di China. WeChat Pay menyediakan pelbagai kaedah pembayaran, dan pembayaran kod QR juga dialu-alukan oleh semakin ramai pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan pembayaran kod QR WeChat.
1. Prasyarat
Sebelum anda mula, anda perlu menyediakan syarat berikut:
- Akaun pembangun WeChat
- Fungsi pembayaran WeChat Mohon kelulusan
- Pembinaan persekitaran pembangunan PHP
- SDK pembayaran WeChat
2. Proses pembayaran WeChat
Proses pembayaran WeChat boleh diringkaskan secara ringkas seperti berikut Langkah berikut:
- Pengguna membuka halaman pembayaran pedagang dan memilih kaedah pembayaran
- Pedagang menghantar maklumat pesanan pengguna ke WeChat Pay
- WeChat Pay menjana kod 2D dan mengembalikannya kepada pedagang
- Pedagang memaparkan kod QR kepada pengguna
- Pengguna menggunakan WeChat untuk mengimbas kod QR dan menyelesaikan pembayaran
- WeChat Pay menghantar pemberitahuan hasil pembayaran kepada pedagang
Untuk melaksanakan pembayaran kod QR WeChat, kami perlu melengkapkan langkah yang sepadan mengikut urutan mengikut proses di atas.
3. Langkah pelaksanaan
- Buat pesanan pembayaran
Di laman web pedagang, pengguna perlu mengisi maklumat pesanan dan memilih pembayaran WeChat kaedah. Selepas pengguna menyerahkan pesanan, pedagang perlu menghantar maklumat pesanan kepada WeChat Pay.
Dalam PHP, kami boleh menggunakan perpustakaan CURL untuk menghantar permintaan POST ke API pembayaran WeChat. Berikut ialah contoh kod:
$url = "https://api.mch.weixin.qq.com/pay/unifiedorder"; $fields = array( "appid" => "YOUR_APP_ID", // 公众号ID或应用ID "mch_id" => "YOUR_MCH_ID", // 商户号 "nonce_str" => uniqid(), // 随机字符串 "out_trade_no" => "YOUR_ORDER_NUMBER", // 商户订单号 "total_fee" => "YOUR_ORDER_AMOUNT", // 订单金额,单位为分 "spbill_create_ip" => $_SERVER["REMOTE_ADDR"], // 用户端实际ip "notify_url" => "YOUR_NOTIFY_URL", // 支付通知回调地址 "trade_type" => "NATIVE", // 交易类型,NATIVE为扫码支付 "product_id" => "PRODUCT_ID", // 商品ID ); $fields["sign"] = make_sign($fields, "YOUR_MCH_KEY"); // 签名字段 $xml = array_to_xml($fields); // 将数组转换为XML格式 $response = curl_post($url, $xml); // 发送POST请求 $result = xml_to_array($response); // 将响应XML转换为数组格式
Dalam kod di atas, kami menggunakan fungsi berikut:
-
uniqid()
untuk menjana rentetan rawak unik -
make_sign()
Digunakan untuk menjana tandatangan -
array_to_xml()
Tukar tatasusunan kepada format XML -
curl_post()
Hantar permintaan POST -
xml_to_array()
Tukar XML Tukar kepada format tatasusunan
Antaranya, kod untuk penjanaan tandatangan adalah seperti berikut:
function make_sign($fields, $key) { $string = ""; ksort($fields); foreach ($fields as $k => $v) { if ($k != "sign" && $v != "" && !is_array($v)) { $string .= $k . "=" . $v . "&"; } } $string .= "key=" . $key; return strtoupper(md5($string)); }
Perlu diingatkan bahawa nombor pedagang dan kunci API boleh diperolehi dalam platform pedagang WeChat Pay.
- Jana kod QR
Selepas mendapat respons daripada pembayaran WeChat, peniaga perlu menghuraikan pautan kod QR dalam respons dan menjananya menjadi kod QR. Dalam PHP, kita boleh menggunakan perpustakaan PHPQRCode untuk menjana kod QR Kod sampel adalah seperti berikut:
require_once("phpqrcode.php"); QRcode::png($result["code_url"]);
Dalam kod di atas, kami mula-mula memperkenalkan perpustakaan PHPQRCode. Kemudian, gunakan kaedah QRcode::png()
untuk menjana kod QR.
- Paparkan kod QR
Selepas menjana kod QR, peniaga perlu memaparkannya kepada pengguna. Dalam PHP, kita boleh menggunakan tag <img>
untuk memaparkan kod QR Contoh kod adalah seperti berikut:
echo "<img src='data:image/png;base64," . base64_encode(file_get_contents("qrcode.png")) . "' />";
Dalam kod di atas, kami membaca fail kod QR sebagai data binari dan memprosesnya. Pengekodan Base64. Kemudian, gunakan data yang dikodkan sebagai URL imej dan gunakan teg <img>
untuk memaparkan kod QR.
- Pemberitahuan hasil pembayaran
Selepas pengguna menyelesaikan pembayaran, WeChat Pay akan menolak hasil pembayaran ke URL pemberitahuan hasil pembayaran pedagang. Selepas menerima pemberitahuan, peniaga perlu mengesahkan kesahihan pemberitahuan dan mengemas kini status pesanan mengikut keputusan pembayaran dalam pemberitahuan. Kod sampel untuk PHP adalah seperti berikut:
$xml = file_get_contents("php://input"); $data = xml_to_array($xml); if (check_sign($data, "YOUR_MCH_KEY")) { if ($data["return_code"] == "SUCCESS" && $data["result_code"] == "SUCCESS") { // 修改订单状态 // ... echo "SUCCESS"; } else { echo "FAIL"; } } else { echo "FAIL"; }
Dalam kod di atas, kami mula-mula menggunakan file_get_contents("php://input")
untuk membaca data XML dalam badan permintaan POST dan menukarnya kepada format tatasusunan. Kemudian, gunakan fungsi check_sign()
untuk mengesahkan kesahihan tandatangan. Akhir sekali, status pesanan dikemas kini berdasarkan hasil pembayaran dan respons "BERJAYA" atau "GAGAL" dihantar ke WeChat Pay.
4. Ringkasan
Artikel ini memperkenalkan cara menggunakan PHP untuk melaksanakan pembayaran kod QR WeChat. Semasa proses pelaksanaan, anda perlu memberi perhatian kepada butiran proses pembayaran WeChat dan menggunakan fungsi dan perpustakaan berkaitan PHP dengan munasabah. Saya harap artikel ini dapat memberi anda sedikit bantuan semasa melaksanakan pembayaran WeChat.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pembayaran kod QR WeChat dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Artikel ini membincangkan kelemahan OWASP 10 dalam strategi PHP dan mitigasi. Isu -isu utama termasuk suntikan, pengesahan yang rosak, dan XSS, dengan alat yang disyorkan untuk memantau dan mendapatkan aplikasi PHP.

Kompilasi JIT Php 8 meningkatkan prestasi dengan menyusun kod yang sering dilaksanakan ke dalam kod mesin, memberi manfaat kepada aplikasi dengan pengiraan berat dan mengurangkan masa pelaksanaan.

Artikel ini membincangkan mendapatkan muat naik fail PHP untuk mengelakkan kelemahan seperti suntikan kod. Ia memberi tumpuan kepada pengesahan jenis fail, penyimpanan selamat, dan pengendalian ralat untuk meningkatkan keselamatan aplikasi.

Artikel ini membincangkan penyulitan simetri dan asimetrik dalam PHP, membandingkan kesesuaian, prestasi, dan perbezaan keselamatan mereka. Penyulitan simetri lebih cepat dan sesuai untuk data pukal, manakala asimetrik digunakan untuk pertukaran utama yang selamat.

Artikel ini membincangkan pelaksanaan pengesahan dan kebenaran yang mantap dalam PHP untuk mencegah akses yang tidak dibenarkan, memperincikan amalan terbaik dan mengesyorkan alat peningkatan keselamatan.

Artikel ini membincangkan strategi untuk melaksanakan kadar API yang mengehadkan PHP, termasuk algoritma seperti baldi token dan baldi bocor, dan menggunakan perpustakaan seperti simfoni/kadar-limiter. Ia juga meliputi pemantauan, had kadar penyesuaian secara dinamik, dan tangan

Artikel ini membincangkan strategi untuk mencegah serangan CSRF di PHP, termasuk menggunakan token CSRF, kuki tapak yang sama, dan pengurusan sesi yang betul.

Artikel membincangkan amalan terbaik untuk pengesahan input PHP untuk meningkatkan keselamatan, memberi tumpuan kepada teknik seperti menggunakan fungsi terbina dalam, pendekatan putih, dan pengesahan sisi pelayan.
