PHP と OAuth を使用して WeChat 決済を統合する方法

王林
リリース: 2023-07-28 20:42:02
オリジナル
1486 人が閲覧しました

PHP と OAuth を使用して WeChat 支払いを統合する方法

はじめに:
モバイル決済の人気により、WeChat 支払いは多くの人にとって好まれる支払い方法になりました。 WeChat Pay を Web サイトまたはアプリケーションに統合すると、ユーザーに便利な支払い体験を提供できます。この記事では、WeChat 支払い統合に PHP と OAuth を使用する方法を紹介し、関連するコード例を示します。

1. WeChat Pay の申請
WeChat Pay を使用する前に、まず WeChat Pay 販売アカウントと関連キーを申請する必要があります。具体的な申請プロセスについては、WeChat Payの公式ドキュメントを参照してください。

2. PHP OAuth ライブラリの選択
OAuth は承認のオープン標準であり、ユーザーはサードパーティのアプリケーションが自分の情報にアクセスすることを承認できます。 WeChat Payでは、ユーザーの認証ログインと決済のプロセスにOAuthが使用されます。 PHP には、OAuth1 や OAuth2 など、選択できるオープンソース OAuth ライブラリが多数あります。

3. OAuth ライブラリのインストールと設定

  1. OAuth ライブラリのダウンロードとインストール
    PHP には、php-oauth2-client など、選択できる優れた OAuth ライブラリが多数あります。 Composer を使用してインストールできます。具体的なインストール コマンドは次のとおりです:
composer require thephpleague/oauth2-client
ログイン後にコピー
  1. OAuth ライブラリの構成
    プロジェクトで、次の Config.php ファイルを作成する必要があります。 OAuth ライブラリの設定。このファイルには、販売者番号、キーなどの WeChat 支払い関連の構成情報が含まれている必要があります。サンプル コードは次のとおりです。
 'YOUR_CLIENT_ID', 'clientSecret' => 'YOUR_CLIENT_SECRET', 'redirectUri' => 'YOUR_REDIRECT_URI', 'wechatPayApiUrl' => 'https://api.mch.weixin.qq.com/pay/unifiedorder', 'wechatPayAppId' => 'YOUR_APP_ID', 'wechatPayMchId' => 'YOUR_MCH_ID', 'wechatPayApiKey' => 'YOUR_API_KEY' ]; } ?>
ログイン後にコピー

4. WeChat 支払いの統合に OAuth を使用する

  1. 承認されたログイン
    ユーザーが WeChat 支払いを使用するには、まず次のことを行う必要があります。ログインを許可します。これは、次のコード例で実現できます。
 Config::$wechatPayConfig['clientId'], 'clientSecret' => Config::$wechatPayConfig['clientSecret'], 'redirectUri' => Config::$wechatPayConfig['redirectUri'], 'urlAuthorize' => 'https://open.weixin.qq.com/connect/oauth2/authorize', 'urlAccessToken' => 'https://api.weixin.qq.com/sns/oauth2/access_token', 'urlResourceOwnerDetails' => 'https://api.weixin.qq.com/sns/userinfo' ]); // 获取授权码 if (!isset($_GET['code'])) { $authorizationUrl = $provider->getAuthorizationUrl(); $_SESSION['oauth2state'] = $provider->getState(); header('Location: ' . $authorizationUrl); exit(); } try { $accessToken = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]); $resourceOwner = $provider->getResourceOwner($accessToken); $openid = $resourceOwner->getValues()['openid']; // TODO: 将openid保存到数据库中 } catch (Exception $e) { // 错误处理 } ?>
ログイン後にコピー
  1. 支払い要求の開始
    ユーザーがログインを承認した後、支払い要求を開始できます。これは、次のコード例で実現できます。
unifiedOrder([ 'body' => '支付测试', 'out_trade_no' => time(), 'total_fee' => '1', 'spbill_create_ip' => $_SERVER['REMOTE_ADDR'], 'notify_url' => 'http://www.example.com/notify.php', 'trade_type' => 'JSAPI', 'openid' => $openid ]); $prepayParams = $wechatPay->getJSSDKParams($prepayInfo['prepay_id']); // 将$prepayParams传递给前端进行支付 ?>
ログイン後にコピー
  1. 支払いコールバック処理
    支払いが成功すると、WeChat サーバーは指定されたnotify_urlをコールバックします。支払い結果を通知するため。これは、次のコード例で実現できます:
handleNotify(); // 处理支付结果通知 if ($notifyResult) { // TODO: 更新数据库中的订单状态 echo 'success'; // 返回给微信服务器,表示已成功处理通知 } else { // TODO: 删除数据库中的订单,或者进行其他处理 echo 'fail'; } ?>
ログイン後にコピー

概要:
上記の手順を通じて、PHP と OAuth に基づいた WeChat 支払い機能を実装できます。まず、OAuth によるユーザー認証ログインを実装し、ユーザーの openid を取得します。次に、openid と関連パラメータを使用して支払いリクエストを行います。最後に、支払い結果通知では、支払い結果が処理され、関連する注文ステータスが更新されます。この方法により、WeChat 支払いを Web サイトやアプリケーションに簡単に統合できます。

上記はこの記事のコード例です。PHP と OAuth を使用して WeChat 決済を統合する際の参考になれば幸いです。

以上がPHP と OAuth を使用して WeChat 決済を統合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!