Panduan untuk dok antara muka pembayaran antara PHP dan program mini

WBOY
Lepaskan: 2023-07-04 10:36:05
asal
1658 orang telah melayarinya

Panduan antara muka pembayaran antara PHP dan Program Mini

Dengan populariti pembayaran mudah alih, semakin ramai peniaga mula menggunakan Program Mini sebagai salah satu saluran jualan utama mereka. Untuk melaksanakan fungsi pembayaran program mini, ia perlu disambungkan ke antara muka pembayaran yang sepadan. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP untuk menyambungkan antara muka pembayaran program mini dan melampirkan contoh kod untuk rujukan.

  1. Persediaan
    Sebelum anda mula, pastikan anda telah mendapatkan maklumat berikut:
  2. Merchant ID (MCHID)
  3. API Key (KEY)
  4. AppID of Mini Program
  5. Key of Mini Program
  6. Key of Mini Program penjanaan
    Penjanaan tandatangan adalah langkah yang sangat penting untuk menyambung dengan antara muka pembayaran program mini. Berikut ialah contoh fungsi yang boleh digunakan untuk menjana tandatangan:
function createSign($params, $key){
    ksort($params);  //按照参数名ASCII码从小到大排序

    $string = '';
    foreach($params as $k => $v){
        if($v != '' && $k != 'sign'){
            $string .= $k . '=' . $v . '&';
        }
    }

    $string .= 'key=' . $key;
    $string = md5($string);  //签名加密

    return strtoupper($string);  //转换成大写
}
Salin selepas log masuk
  1. Antaramuka pesanan bersatu
    Antaramuka pesanan bersatu ialah langkah pertama dalam pembayaran program mini. Berikut ialah fungsi contoh yang boleh digunakan untuk menghantar permintaan pesanan bersatu kepada pelayan WeChat:
function createUnifiedOrder($mchid, $key, $appid, $openid, $out_trade_no, $total_fee){
    $params = array(
        'appid' => $appid,
        'body' => '商品描述',
        'mch_id' => $mchid,
        'nonce_str' => md5(time()),
        'notify_url' => '支付成功回调地址',
        'openid' => $openid,
        'out_trade_no' => $out_trade_no,
        'spbill_create_ip' => $_SERVER['REMOTE_ADDR'],
        'total_fee' => $total_fee,
        'trade_type' => 'JSAPI'
    );

    //生成签名
    $params['sign'] = createSign($params, $key);

    //将数组转换为XML格式
    $xml = '<xml>';
    foreach($params as $k => $v){
        $xml .= '<' . $k . '>' . $v . '</' . $k . '>';
    }
    $xml .= '</xml>';

    //向微信服务器发送请求
    $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

    $response = curl_exec($ch);
    curl_close($ch);

    //解析XML响应
    $result = simplexml_load_string($response);
    $prepay_id = $result->prepay_id;  //获取预支付交易会话标识

    return $prepay_id;
}
Salin selepas log masuk
  1. Operasi pembayaran program mini
    Program mini perlu meminta prabayar_id dari latar belakang, dan kemudian gunakan prabayar_id untuk melaksanakan operasi pembayaran. Berikut adalah contoh fungsi untuk memanggil pembayaran program mini:
function getMiniProgramPayParams($mchid, $key, $appid, $openid, $out_trade_no, $total_fee){
    $prepay_id = createUnifiedOrder($mchid, $key, $appid, $openid, $out_trade_no, $total_fee);

    $params = array(
        'appId' => $appid,
        'timeStamp' => time(),
        'nonceStr' => md5(time()),
        'package' => 'prepay_id=' . $prepay_id,
        'signType' => 'MD5'
    );

    //生成签名
    $params['paySign'] = createSign($params, $key);

    return $params;
}
Salin selepas log masuk

Kesimpulan:
Melalui langkah di atas, kita boleh menggunakan bahasa PHP untuk menyambung ke antara muka pembayaran program mini untuk merealisasikan fungsi pembayaran mudah alih. Sudah tentu, dalam proses permohonan sebenar, pelarasan dan pengembangan yang sepadan perlu dibuat mengikut keperluan perniagaan tertentu. Saya berharap kandungan artikel ini akan membantu anda dan membolehkan anda melaksanakan fungsi pembayaran program mini dengan jayanya.

Atas ialah kandungan terperinci Panduan untuk dok antara muka pembayaran antara PHP dan program mini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan