Rumah >pembangunan bahagian belakang >tutorial php >Melaksanakan permulaan pembayaran WeChat dan pertanyaan dalam PHP

Melaksanakan permulaan pembayaran WeChat dan pertanyaan dalam PHP

WBOY
WBOYasal
2023-05-13 22:31:341268semak imbas

Dengan populariti pembayaran WeChat, semakin banyak tapak web perlu menyepadukan fungsi pembayaran WeChat. Dalam artikel ini, kami akan membincangkan cara melaksanakan permulaan dan pertanyaan pembayaran WeChat dalam PHP.

  1. Panggil API pesanan bersatu

Untuk memulakan pembayaran WeChat dalam PHP, langkah pertama ialah memanggil API pesanan bersatu pembayaran WeChat untuk menjana pesanan prabayaran. API perlu lulus beberapa parameter yang diperlukan, termasuk ID pedagang, jumlah pembayaran, nombor pesanan, URL panggilan balik, dsb. Berikut ialah kod sampel:

<?php
  require_once('WxPayApi.php');
  require_once('WxPayUnifiedOrder.php');
  
  $order = new WxPayUnifiedOrder();
  $order->SetBody('商品描述');
  $order->SetOut_trade_no('订单号');
  $order->SetTotal_fee('支付金额');
  $order->SetNotify_url('回调URL');
  $order->SetTrade_type('JSAPI');
  $order->SetOpenid('用户OpenID');
  
  $result = WxPayApi::unifiedOrder($order);
  1. Dapatkan maklumat pesanan prabayar

Selepas menghubungi API pesanan bersatu, kami perlu mendapatkan maklumat pesanan prabayar, termasuk transaksi prabayaran Sesi ID (prepay_id) dan parameter lain yang diperlukan. Berikut ialah kod sampel:

<?php
  require_once('WxPayApi.php');
  require_once('WxPayData.php');
  
  $input = new WxPayData();
  $input->SetBody('商品描述');
  $input->SetOut_trade_no('订单号');
  $input->SetTotal_fee('支付金额');
  $input->SetNotify_url('回调URL');
  $input->SetTrade_type('JSAPI');
  $input->SetOpenid('用户OpenID');
  
  $result = WxPayApi::unifiedOrder($input);
  $prepay_id = $result['prepay_id'];
  $params = [
    'appId' => $result['appid'],
    'timeStamp' => time(),
    'nonceStr' => $result['nonce_str'],
    'package' => "prepay_id={$prepay_id}",
    'signType' => 'MD5'
  ];
  $params['paySign'] = WxPayApi::getSign($params);
  1. Lompat ke halaman pembayaran

Selepas mendapatkan maklumat pesanan prabayaran, kami boleh menghantar parameter yang diperolehi ke bahagian hadapan untuk membenarkan pengguna Mulakan pembayaran dalam pelanggan WeChat. Berikut ialah contoh kod:

<?php
  echo '<script language="javascript">';
  echo 'WeixinJSBridge.invoke("getBrandWCPayRequest", {
    "appId":"'.$params['appId'].'",
    "timeStamp":"'.$params['timeStamp'].'",
    "nonceStr":"'.$params['nonceStr'].'",
    "package":"'.$params['package'].'",
    "signType":"'.$params['signType'].'",
    "paySign":"'.$params['paySign'].'"
  }, function(res){
    if(res.err_msg == "get_brand_wcpay_request:ok" ){
      alert("支付成功");
    }else{
      alert("支付失败");
    }
  });';
  echo '</script>';
  1. Pertanyaan keputusan pembayaran

Selepas pembayaran selesai, kami perlu menyoal keputusan pembayaran untuk memastikan transaksi telah selesai dengan jayanya. Berikut ialah contoh kod:

<?php
  require_once('WxPayApi.php');
  
  $input = new WxPayOrderQuery();
  $input->SetOut_trade_no('订单号');
  
  $result = WxpayApi::orderQuery($input);
  if ($result['trade_state'] == 'SUCCESS') {
    echo '支付成功';
  } else {
    echo '支付失败';
  }

Ringkasan:

Di atas ialah keseluruhan proses memulakan dan menanyakan pembayaran WeChat dalam PHP. Apabila kami perlu menyepadukan pembayaran WeChat di tapak web, kami boleh mengikuti langkah di atas. Adalah disyorkan untuk menggunakan SDK yang disediakan secara rasmi untuk pembangunan, yang boleh menjimatkan banyak masa dan tenaga.

Atas ialah kandungan terperinci Melaksanakan permulaan pembayaran WeChat dan pertanyaan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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