ホームページ >PHPフレームワーク >ThinkPHP >Alipay および WeChat の支払い操作に ThinkPHP6 を使用するにはどうすればよいですか?
モバイルインターネットの急速な発展に伴い、電子決済は現代生活においてますます重要な役割を果たしています。 Alipay と WeChat Pay は、現代社会における主要な電子決済手段の 1 つとなっています。そこで、Web アプリケーションで Alipay と WeChat の支払いをスムーズに処理できるように、この記事では ThinkPHP 6 を使用して Alipay と WeChat の支払いを操作する方法を紹介します。
1. 関連するライブラリ ファイルを導入する
Alipay および WeChat の支払いに ThinkPHP6 を使用する前に、まず関連するライブラリ ファイルを導入する必要があります。ここでは、Composer がすでにインストールされていると仮定し、コンソールで次のコマンドを使用して関連するライブラリ ファイルをインストールします:
composer require alipay/easysdk
composer require wechatpay/ wechatpay
composer require guzzlehttp/guzzle
そのうち、alipay/easysdk は Alipay 開発キット、wechatpay/wechatpay は WeChat オープン プラットフォーム SDK、および guzzlehttp /guzzle は、HTTP リクエストを行うための API PHP ライブラリに使用されます。
2. Alipay 支払い操作
Alipay 支払いプロセスの主なプロセスは次のとおりです:
次は、Alipay 支払いに ThinkPHP6 を使用する例です:
use AlipayEasySDKFactory; class AlipayController extends Controller { public function index() { $config = [ 'app_id' => 'your-app-id', 'private_key' => 'your-private-key', 'public_key' => 'your-public-key', 'log' => [ 'file' => './alipay/easy.log', 'level' => 'debug', ], 'notify_url' => 'http://yourwebsite.com/notify', 'return_url' => 'http://yourwebsite.com/return' ]; $app = Factory::create('payment', $config); $order = [ 'out_trade_no' => date('YmdHis'), 'total_amount' => 0.01, 'subject' => 'test', ]; $url = $app->order->page($order, 'http://yourwebsite.com/return'); return $url; } }
上記のコードでは、まず、Configured トランザクション インスタンスを作成する Alipay の EasySDK ファクトリ クラスを引用しました。次に、順序情報を含む順序配列を構築します。ここでは注文番号(out_trade_no)、注文金額(total_amount)、注文件名(subject)を設定します。次に、order メソッドを使用して支払いリクエストを開始し、最後に支払い URL をユーザーに返します。
支払いが完了すると、Alipay は販売者のサーバーに POST リクエストを送信します。このリクエストには支払い情報が含まれており、販売者の notify_url を呼び出します。コードでは、notify_url は販売者のサーバーのアドレスを指し、販売者に支払い結果を処理する機能を提供します。
3. WeChat 支払い操作
WeChat 支払いプロセスの主なプロセスは次のとおりです:
次は、WeChat 支払いに ThinkPHP6 を使用する例です:
use WechatPayGuzzleMiddlewareUtilPemUtil; use WechatPayNotifyPaidNotify; use WechatPayOpenAPIV3PayAppPayClient; use WechatPayOpenAPIV3PayJsPayClient; class WechatController extends Controller { public function index() { $merchantId = 'your-mchid'; $merchantSerialNumber = 'your-serial'; $merchantPrivateKey = PemUtil::loadPrivateKey('./cert/apiclient_key.pem'); $wechatpayCertificate = PemUtil::loadCertificate('./cert/wechatpay_certificate.pem'); $apiV3Key = 'your-key'; $client = new JsPayClient( $merchantId, $merchantSerialNumber, $merchantPrivateKey, $wechatpayCertificate, $apiV3Key ); $params = [ 'body' => 'testbody', 'out_trade_no' => date('YmdHis'), 'app_id' => 'your-app-id', 'notify_url' => 'http://yourwebsite.com/wechat_notify', 'amount' => [ 'total' => 1, ], 'description' => 'test_description', ]; $result = $client->prepare($params); $prepayId = $result['prepay_id']; $appClient = new AppPayClient( $merchantId, $merchantSerialNumber, $merchantPrivateKey, $wechatpayCertificate, $apiV3Key ); $packageParams = [ 'prepay_id' => $prepayId, 'trade_type' => 'JSAPI', 'timeStamp' => strval(time()), 'nonceStr' => md5(bin2hex(openssl_random_pseudo_bytes(16))), ]; $packageParams['sign'] = $appClient->sign($packageParams); return json_encode($packageParams); } }
上記のコードでは、WeChat 支払いの GuzzleMiddleware ライブラリと WeChat 支払いオープン プラットフォームの SDK を導入しました。 。次に、販売者 ID、販売者シリアル番号、販売者秘密キー (mchid、シリアル、キー) を設定します。次に、支払い関連のパラメータを構築し、JsPayClient の prepare メソッドを使用して prepay_id を取得します。注文署名の生成順序は、appid、mch_id、nonce_str、prepay_id、trade_type、key に従う必要があることに注意してください。最後に、AppPayClient の signed メソッドを使用して署名を生成し、そのすべてのパラメーターを JSON でシリアル化し、ユーザーに返します。
支払いが完了すると、WeChat は販売者のサーバーに POST リクエストを送信します。このリクエストには支払い情報が含まれており、販売者の notify_url を呼び出します。コードでは、notify_url は販売者のサーバーのアドレスを指し、販売者に支払い結果を処理する機能を提供します。
要約すると、この記事では、Alipay と WeChat の支払い操作に ThinkPHP6 を使用する方法を紹介します。この記事は基本的な例のみを提供しているため、支払い結果と例外をより詳細に処理する必要があることに注意してください。問題が発生した場合は、Alipay や WeChat Pay の API ドキュメント、または GitHub などのプラットフォームの情報を参照してください。
以上がAlipay および WeChat の支払い操作に ThinkPHP6 を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。