WeChat 支払いに Hyperf フレームワークを使用する
はじめに:
電子商取引の発展に伴い、WeChat 支払いは人々が買い物をするための主要な方法の 1 つになりました。そして日常生活で支払います。開発においては、WeChat 決済をいかに迅速に統合するかが特に重要になります。この記事では、WeChat 支払いに Hyperf フレームワークを使用する方法を紹介し、具体的なコード例を示します。
本文:
1. 準備作業
WeChat 支払いに Hyperf フレームワークを使用する前に、いくつかの準備作業が必要です。まず、WeChat 決済アカウントを登録し、加盟店番号、アプリケーション キーなどの情報を取得します。次に、Hyperf フレームワークをインストールします。Composer を使用してインストールし、composer create-project hyperf/hyperf-skeleton コマンドを実行します。最後に、WeChat 支払い SDK ライブラリをインストールします。Composer を使用してインストールし、コマンド「composer require overtrue/wechat」を実行します。
2. 設定ファイル
Hyperf フレームワークでは、設定ファイルは config/autoload ディレクトリにあります。設定ファイルに、加盟店番号、アプリケーション キーなど、WeChat 支払い関連の設定項目を正しく入力します。サンプル構成は次のとおりです:
return [ 'wechat' => [ 'app_id' => env('WECHAT_APPID', ''), 'mch_id' => env('WECHAT_MCH_ID', ''), 'key' => env('WECHAT_KEY', ''), 'cert_path' => env('WECHAT_CERT_PATH',''), 'key_path' => env('WECHAT_KEY_PATH',''), 'notify_url' => env('WECHAT_NOTIFY_URL',''), ], ];
3. WeChat 支払いサービス クラスの作成
Hyperf フレームワークでは、支払い関連のメソッドをカプセル化する WeChat 支払いサービス クラスを作成できます。サンプル コードは次のとおりです。
<?php declare(strict_types=1); namespace AppService; use EasyWeChatPaymentApplication; class WechatPayService { protected $app; public function __construct() { $config = config('wechat'); $this->app = new Application($config); } public function createOrder(string $orderNo, float $totalAmount, string $description) { $result = $this->app->order->unify([ 'out_trade_no' => $orderNo, 'body' => $description, 'total_fee' => $totalAmount * 100, 'trade_type' => 'APP', ]); if ($result['return_code'] === 'SUCCESS' && $result['result_code'] === 'SUCCESS') { $prepayId = $result['prepay_id']; $jssdkParams = $this->app->jssdk->appConfig($prepayId); return [ 'prepay_id' => $result['prepay_id'], 'jssdk_params' => $jssdkParams, ]; } else { throw new Exception($result['return_msg']); } } public function notify(array $data) { $response = $this->app->handlePaidNotify(function ($message, $fail) { // 处理支付回调 // 更新订单状态,发货等操作 return true; // 返回处理结果, true 或 false }); return $response; } }
4. 支払いインターフェイスを呼び出します
WeChat 支払いを呼び出す必要がある場合、WeChat 支払いサービス クラスをインスタンス化し、対応するメソッドを呼び出します。サンプル コードは次のとおりです:
<?php declare(strict_types=1); namespace AppController; use AppServiceWechatPayService; use HyperfHttpServerAnnotationController; use HyperfHttpServerAnnotationPostMapping; use HyperfHttpServerContractRequestInterface; /** * @Controller() */ class PayController { /** * @PostMapping(path="/pay") */ public function pay(RequestInterface $request, WechatPayService $payService) { $orderNo = $request->input('orderNo'); $totalAmount = $request->input('totalAmount'); $description = $request->input('description'); try { $result = $payService->createOrder($orderNo, $totalAmount, $description); // 返回给前端APP的支付参数 return $result; } catch (Exception $e) { // 处理异常错误 return [ 'error' => $e->getMessage(), ]; } } /** * @PostMapping(path="/notify") */ public function notify(RequestInterface $request, WechatPayService $payService) { $payService->notify($request->all()); // 处理支付回调结果 return 'success'; } }
5. ルーティングの構成
ルーティングを構成し、支払いインターフェイスとコールバック インターフェイスを対応するコントローラー メソッドにバインドします。サンプル コードは次のとおりです。
<?php declare(strict_types=1); use HyperfHttpServerRouterRouter; Router::addRoute(['POST'], '/pay', 'App\Controller\PayController@pay'); Router::addRoute(['POST'], '/notify', 'App\Controller\PayController@notify');
概要:
この記事では、WeChat 支払いに Hyperf フレームワークを使用する方法を紹介し、具体的なコード例を示します。構成ファイルを通じて WeChat 支払い関連のパラメーターを設定し、WeChat 支払いサービス クラスを作成することで、簡単に支払いインターフェイスを呼び出し、支払い結果をコールバックできます。この記事が、開発プロセス中に WeChat Pay を統合する開発者にとって役立つことを願っています。
以上がWeChat 支払いに Hyperf フレームワークを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。