ホームページ >バックエンド開発 >PHPチュートリアル >PHP での WeChat 支払いの開始とクエリの実装

PHP での WeChat 支払いの開始とクエリの実装

WBOY
WBOYオリジナル
2023-05-13 22:31:341269ブラウズ

WeChat 支払いの人気に伴い、WeChat 支払い機能を統合する必要がある Web サイトがますます増えています。この記事では、PHP で WeChat の支払いの開始とクエリを実装する方法について説明します。

  1. 統合注文 API の呼び出し

PHP で WeChat 支払いを開始するには、最初のステップは、WeChat 支払いの統合注文 API を呼び出して前払い注文を生成することです。 API は、販売者 ID、支払い金額、注文番号、コールバック URL など、いくつかの必要なパラメーターを渡す必要があります。以下はサンプル コードです:

<?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. 前払い注文情報の取得

統合注文 API を呼び出した後、前払いトランザクション セッションを含む前払い注文情報を取得する必要があります。 ID (prepay_id) およびその他の必要なパラメータ。以下はサンプルコードです:

<?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. 支払いページへジャンプ

前払い注文情報を取得した後、取得したパラメータをフロントエンドに渡して、ユーザーは WeChat クライアントで支払いを開始します。以下はサンプルコードです:

<?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. 支払い結果のクエリ

支払いが完了したら、トランザクションが完了したことを確認するために支払い結果をクエリする必要があります。成功しました。以下はサンプル コードです:

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

概要:

上記は、PHP で WeChat 支払いを開始およびクエリするプロセス全体です。 WeChat 支払いを Web サイトに統合する必要がある場合は、上記の手順に従うことができます。開発には公式に提供されている SDK を使用することをお勧めします。これにより、時間と労力を大幅に節約できます。

以上がPHP での WeChat 支払いの開始とクエリの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。