Rumah pembangunan bahagian belakang masalah PHP Bagaimana untuk melaksanakan pembayaran kod QR WeChat dalam PHP

Bagaimana untuk melaksanakan pembayaran kod QR WeChat dalam PHP

Apr 19, 2023 am 09:20 AM

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:

  1. Akaun pembangun WeChat
  2. Fungsi pembayaran WeChat Mohon kelulusan
  3. Pembinaan persekitaran pembangunan PHP
  4. SDK pembayaran WeChat

2. Proses pembayaran WeChat

Proses pembayaran WeChat boleh diringkaskan secara ringkas seperti berikut Langkah berikut:

  1. Pengguna membuka halaman pembayaran pedagang dan memilih kaedah pembayaran
  2. Pedagang menghantar maklumat pesanan pengguna ke WeChat Pay
  3. WeChat Pay menjana kod 2D dan mengembalikannya kepada pedagang
  4. Pedagang memaparkan kod QR kepada pengguna
  5. Pengguna menggunakan WeChat untuk mengimbas kod QR dan menyelesaikan pembayaran
  6. 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

  1. 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转换为数组格式
Salin selepas log masuk

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));
}
Salin selepas log masuk

Perlu diingatkan bahawa nombor pedagang dan kunci API boleh diperolehi dalam platform pedagang WeChat Pay.

  1. 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"]);
Salin selepas log masuk

Dalam kod di atas, kami mula-mula memperkenalkan perpustakaan PHPQRCode. Kemudian, gunakan kaedah QRcode::png() untuk menjana kod QR.

  1. 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=&#39;data:image/png;base64," . base64_encode(file_get_contents("qrcode.png")) . "&#39; />";
Salin selepas log masuk

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.

  1. 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";
}
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum. OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum. Mar 26, 2025 pm 04:13 PM

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.

PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. Mar 25, 2025 am 10:37 AM

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.

PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail. PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail. Mar 26, 2025 pm 04:18 PM

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.

Penyulitan PHP: Penyulitan simetri vs asimetrik. Penyulitan PHP: Penyulitan simetri vs asimetrik. Mar 25, 2025 pm 03:12 PM

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.

Pengesahan PHP & amp; Kebenaran: Pelaksanaan selamat. Pengesahan PHP & amp; Kebenaran: Pelaksanaan selamat. Mar 25, 2025 pm 03:06 PM

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.

PHP API Kadar Mengehadkan: Strategi Pelaksanaan. PHP API Kadar Mengehadkan: Strategi Pelaksanaan. Mar 26, 2025 pm 04:16 PM

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

PHP CSRF Perlindungan: Bagaimana untuk mencegah serangan CSRF. PHP CSRF Perlindungan: Bagaimana untuk mencegah serangan CSRF. Mar 25, 2025 pm 03:05 PM

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

Pengesahan Input PHP: Amalan Terbaik. Pengesahan Input PHP: Amalan Terbaik. Mar 26, 2025 pm 04:17 PM

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.

See all articles