ホームページ  >  記事  >  バックエンド開発  >  WeChatミニプログラム決済に関するPHP実装方法

WeChatミニプログラム決済に関するPHP実装方法

WBOY
WBOYオリジナル
2023-05-31 21:10:342852ブラウズ

WeChat ミニ プログラムの普及により、WeChat ミニ プログラムの支払いはますます多くの販売者にとって必要な支払い方法になりました。加盟店が WeChat アプレット決済機能にアクセスしやすくするために、この記事では PHP に基づいた実装方法を紹介します。

1. 準備作業
WeChat ミニプログラム決済にアクセスする前に、次の手順を準備する必要があります:

1.1 WeChat 決済の加盟店番号と API キーの取得
加盟店番号は、 WeChat 決済プラットフォーム上で販売者によって適用される一意の識別子であり、API キーは販売者への申請時に生成され、署名の検証に使用される支払いキーです。
1.2 WeChat 支払い証明書の構成
販売者は、WeChat 支払い証明書をサーバーのセキュリティ ディレクトリに配置し、証明書のパスを指定する必要があります。
1.3 HTTPS サーバーを構築する
WeChat Pay では、加盟店がデータ送信に HTTPS プロトコルを使用する必要があるため、サーバー上で HTTPS 証明書を構成する必要があります。

2. WeChat ミニ プログラムの支払いプロセス
WeChat ミニ プログラムの支払いプロセスには通常、次の手順が含まれます:

2.1 ユーザーの注文
ユーザーはミニ プログラムを通じて製品を選択し、注文します。 、アプレットは注文情報を販売者のサーバーに送信して処理します。
2.2 販売者サーバーの注文
ユーザーの注文リクエストを受信した後、販売者サーバーは前払い注文を生成し、それをミニ プログラムに返します。
2.3 ミニ プログラムは支払いをアクティブ化します
前払い注文を受信した後、ミニ プログラムは WeChat 支払い API を通じて支払い機能をアクティブにします。
2.4 支払い結果通知
支払いが完了すると、WeChat サーバーは支払い結果を販売者サーバーに通知し、販売者サーバーは注文処理後に WeChat サーバーに応答を送信します。

3.PHP 実装方法
PHP に基づく WeChat アプレット支払いの実装方法は次のとおりです。

3.1 マーチャント サーバーの注文
マーチャント サーバーがユーザーの注文リクエストを受信した後, 前払い注文を生成し、前払い注文情報をアプレットに返す必要があります。以下は注文のための PHP コード実装です:

<?php
public function unifiedOrder($data)
{
    $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder';
    $data['appid'] = $this->appId;
    $data['mch_id'] = $this->mchId;
    $data['nonce_str'] = $this->getNonceStr();
    $data['notify_url'] = $this->notifyUrl;
    $data['trade_type'] = 'JSAPI';
    $data['openid'] = $openid;
    $data['spbill_create_ip'] = $_SERVER['REMOTE_ADDR'];
    $data['sign'] = $this->sign($data);

    $xml = $this->arrayToXml($data);
    $response = $this->postXmlCurl($xml, $url);
    $result = $this->xmlToArray($response);
    return $result;
}

3.2 ミニ プログラムによる支払いの呼び出し
ミニ プログラムは前払い注文を受け取った後、支払いのために WeChat 支払い API を呼び出す必要があります。以下は、支払い呼び出しの PHP コード実装です。

<?php
public function getPayParams($prepayId)
{
    $data['appId'] = $this->appId;
    $data['timeStamp'] = time();
    $data['nonceStr'] = $this->getNonceStr();
    $data['package'] = 'prepay_id=' . $prepayId;
    $data['signType'] = 'MD5';
    $data['paySign'] = $this->sign($data);

    return $data;
}

3.3 支払い結果通知
WeChat 支払いが完了すると、WeChat サーバーは支払い結果をマーチャント サーバーに通知します。以下は、支払い結果通知の PHP コード実装です:

<?php
public function notify()
{
    $xml = file_get_contents("php://input");
    $data = $this->xmlToArray($xml);

    if ($this->checkSign($data)) {
        //处理支付结果
        $orderNo = $data['out_trade_no'];
        $transactionId = $data['transaction_id'];
        //返回成功信息
        return $this->arrayToXml(['return_code' => 'SUCCESS', 'return_msg' => 'OK']);
    } else {
        return $this->arrayToXml(['return_code' => 'FAIL', 'return_msg' => '签名验证失败']);
    }
}

4. 概要
上記の手順の実装を通じて、WeChat ミニ プログラムの支払い機能に簡単にアクセスし、ミニ プログラムのユーザーにより便利なお支払い方法です。潜在的な支払いリスクを回避すると同時に、支払いプロセス中にデータのセキュリティと正確性を確保する必要があることに注意してください。

以上がWeChatミニプログラム決済に関するPHP実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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