ホームページ > バックエンド開発 > PHPチュートリアル > Alipayオンライン決済インターフェース開発のphp実装の詳細な説明

Alipayオンライン決済インターフェース開発のphp実装の詳細な説明

墨辰丷
リリース: 2023-03-28 22:36:01
オリジナル
10237 人が閲覧しました

この記事では主に PHP Alipay オンライン決済インターフェース開発チュートリアルを詳しく紹介します。興味のある方は参考にしてください

1. いわゆるサードパーティ決済とは、これは、大手銀行と契約を締結し、一定の強度と信頼性が保証されている一部の第三者独立機関が提供する取引支援プラットフォームです。第三者の決済プラットフォームを介した取引では、買い手が商品を購入した後、第三者のプラットフォームが提供するアカウントを使用して商品の代金を支払い、第三者は商品の到着を売り手に通知します。

現在、サードパーティ支払いを提供する機関は数多くあります。一般的なものには、Alipay、Tenpay、Kuaiqian、オンライン バンキング、Yibao Pay、Yunwang、その他の主要な支払いプラットフォームが含まれます。 Web サイトでサードパーティ支払いを実装する必要がある場合は、まずサードパーティ支払いプラットフォームにアカウントを申請し、契約に署名する必要があります。契約が発効すると、サードパーティ支払いプラットフォームはオンライン支払い機能を有効にして、プログラムを通じてウェブサイトに接続します。

なぜ第三者決済を使用するのですか?サードパーティの支払いプラットフォームは大手銀行と契約を結んでいるため、Web サイト所有者はこのプラットフォームにアカウントを申請するだけで、ほぼすべての種類の銀行カードやクレジット カードの取引をサポートできます。

2. 第三者による支払いの原則

もちろん、上記では支払いプロセスの一部 (ショッピング カート、注文など) を省略しています。プロセス。

2.1 ユーザーはモールのウェブサイトに対して注文を確認するリクエストを開始します 2.2 モールのウェブサイトはリクエストを受信し、注文データをデータベースまたは他の記憶媒体に保存します

2.3 注文確認ページに戻ります。注文金額やその他の情報を表示します

2.4 ユーザー確認 支払い、支払いリクエストを開始します。注: 支払いリクエストは、モールの Web サイトではなく、支払いゲートウェイ (Alipay、オンライン バンキングなど) に送信されます。

2.5 決済ページを表示する

2.6 ユーザーが認証情報(アカウントパスワードなど)を入力して送信する

2.7 ここでのステ​​ップは2つあり、1つは決済結果ページ(ユーザーに表示される)にジャンプすることです。 ) 引き落としが成功した後、もう 1 つは支払い通知です。これら 2 つのステップは順番に関係なく同時に実行される場合があります。支払い通知を受け取った後、モールのウェブサイトは検証ルールに従って情報の有効性を検証します。対応する変更を加えます (例: 有効な場合、注文は有料ステータスに変更され、無効な場合、レコードは違法になります。リクエスト情報)。

Alipay を例に挙げます。Alipay インターフェイスを Web サイトに統合したい場合は、まず Alipay アカウントを取得し、次に Alipay でオンライン決済ビジネスを申請し、契約に署名する必要があります。契約が発効すると、Alipay は Web サイトにパートナー ID とセキュリティ検証コードを付与します。これらの 2 つにより、Alipay インターフェースは上記の手順の 4 つと 7 つだけで作成できます。このステップには、モールと支払いゲートウェイの間の情報交換が含まれます。ステップ 4 は、支払いゲートウェイ (Alipay) にデータを送信することを指します。ステップ 7 は、ウェブサイトの特定のアドレスを要求し、ウェブサイトが検証ルールに従って情報を検証し、応答します。ほとんどすべての決済を開発しています インターフェイスに関しては、これら 2 つの部分の開発に重点が置かれています。決済インターフェイスの原理を理解していれば、決済インターフェイスの開発は難しくありません。

3. Alipayインターフェースの開発

3.1 インターフェースの導入とテスト

Alipayは現在、保証された取引、標準的な即時支払い、二重機能などのいくつかのインターフェースを提供していますが、機能やWebサイトの統合などにいくつかの違いがあります。方法は同じです。標準のインスタント アカウント インターフェイスを例にとると、Alipay との契約に署名した後、統合を完了するにはいくつかの手順が必要です。

次に表示される「セルフサービス統合が必要です」というリンクを選択し、クリックして技術文書をダウンロードします。

ダウンロードされたファイルには、標準の Alipay トランザクション サービス インターフェイス、マーチャント ツール、インターフェイス統合ガイド、その他のインターフェイス ドキュメント、およびいくつかの言語で書かれたデモが含まれています。インターフェイス ドキュメントのルールに従って新しいものを開発することも、構築することもできます。デモに基づいて上記の変更は Web サイトに統合されています。デバッグ プロセス全体を完了するには、支払いインターフェイスの開発がパブリック ネットワーク上で行われる必要があることに注意してください (サーバーは外部ネットワーク経由でアクセスできる必要があります)。 . 外部ネットワークからサーバーにアクセスできない場合、支払通知を受け取ることができません。

デモの各ファイルの機能を見てください:

ここからダウンロードされています (リソース ディレクトリの有料フォルダーを参照)。デバッグを容易にするために、いくつかのファイルが追加および変更されています。注文情報を保存するためにデータ テーブルが追加されたら、構成ファイルを変更してテスト プロセスを完了します。

alipay_config.phpは基本情報設定ファイルで、Alipayバックエンドで取得したPIDとKeyを設定ファイルに書き込む必要があります。

設定項目:

ボックス内のデータは、重点的に変更する必要があるものです。支払い通知アドレスと返送先アドレスの違いは前述しました。ステップ 7 には、支払い結果ページと支払い通知情報の 2 つの項目があり、ユーザーが支払いを完了すると、このアドレスに自動的にジャンプします。返信先アドレス ($return_url) は次のとおりです。

ユーザーが支払いを完了すると、Alipay はアドレス ($notify_url) を要求しますが、支払い通知は Alipay サーバーによって直接要求されるため、ユーザーには表示されません。 。これら 2 つのアドレスは、http で始まるフル パス形式である必要があります。テスト プロセスを完了するには、/pay/alipay/notify_url.php がここで書き換えられ、$notify_url がこのファイルにアクセスできる URL に設定されます。これらの項目を構成した後、データベース スクリプト (pay/orders.sql) に従ってデータ テーブルが作成されます。そして、データベースの設定情報に従って mysql_config.php を変更します。Alipay が提供するデモを変更するだけで、支払いリクエストの作成が完了します (ステップ 4)。ここでは、支払いホームページとその他のページが変更されます。ソースコードパッケージの有料ディレクトリ)。まずはテストしてみましょう:

「注文情報」がデータベースに追加されました

「支払いを確認する」ボタンをクリックするか、支払いを確認するリンクをクリックすると、Alipay ページにジャンプします。ボタンをクリックすると、情報はフォーム POST を介して支払いゲートウェイに送信されます。支払い要求データはユーザーに表示される必要がないため、非表示フィールドに書き込まれます。支払い確認リンクは URL 経由で渡されます。Alipay インターフェイスでは POST または GET で送信できるため、どちらの方法でも使用できます。パラメータを支払いゲートウェイに送信した後、ページは支払いページにジャンプします。以下の写真をご覧ください:

Alipay は 2 つの支払い方法を提供していることがわかります。1 つは Alipay アカウントを通じて支払うことで、もう 1 つは銀行カードを通じて支払うことです。たとえば、銀行カードで支払うことを選択した場合は、電子メールまたは携帯電話番号を入力して次のページに移動します:

弊社の請求 Alipay は、クレジット カードや支店だけでなく、ほぼすべての銀行カードでの支払いもサポートしています。対応する銀行を選択し、「次へ」をクリックします。支払いを求めるメッセージが表示されます。支払いが完了すると、ページは設定ファイルで設定した $return_url アドレスに戻り、「注文ステータス」も変更されます。

注: テスト中に外部ネットワークのテストが行​​われない場合 (つまり、外部ネットワークから支払い通知アドレスにアクセスできない場合)、支払い通知をリクエストすることはできず、注文ステータスを自動的に変更することもできません。

3.2 Alipayインターフェースの仕様とコード分析

Alipayインターフェースの仕様については、/pay/doc/Standard Alipay Transaction Service Interface(フィッシング対策Webサイト専用)を参照してください。 PDF にはすでに比較的詳細な手順が記載されています。

3.2.1 支払いリクエストの作成方法

前回のテストでは、「支払いの確認」をクリックしてAlipayの支払いゲートウェイに情報を送信しましたが、どのパラメータを支払いゲートウェイに送信するかを考えることができます。リクエストパラメータのリストについては、標準の Alipay トランザクション サービス インターフェイス (フィッシング対策 Web サイト専用) を参照してください。 PDF の 3.2.2 データのセキュリティを確保するために、Alipay は現在、データの改ざんを防ぐためにこれらのパラメーターをそのまま送信する必要があるわけではないことに注意してください。

データを送信する前に、特定のルールに従って送信するデータを文字列に組み立て(インターフェイスドキュメントを参照)、セキュリティチェックコード(キー)を追加して新しい文字列を形成し、32バイトの文字列を生成する必要があります支払いリクエストを送信するときは、この署名も送信する必要があります。フォームのソースコードを見てください

パラメータを受け取った後、Alipayはリクエストパラメータの正当性を検証します。検証後、支払いページが表示されます。そうでない場合はエラーが表示されます。

3.2.2 支払い通知の確認方法

ユーザーの支払いが完了すると、Alipay はウェブサイトの支払い通知アドレスをリクエストします (このアドレスは、支払いリクエストの作成時にパラメータとして渡す必要があります)。戻りパラメータのリストについては、標準の Alipay トランザクション サービス インターフェイス (フィッシング対策 Web サイト専用) を参照してください。 Pdf3.3.1. Alipay の返信データにも署名文字列があります (支払い要求と同じ署名方法を使用)。最初にデータに署名して検証する必要があります。署名の検証に加えて、通知の信頼性を検証し、検証を通知するために、パラメータのnotify_idもAlipayの検証ゲートウェイAlipayシステムに送信する必要があります。 Alipay システムは、通知が独自に送信されたかどうかを判断し、文字列形式の場合は true を返し、それ以外の場合は、サーバーから返されたデータを検証することでリクエストの信頼性を検証します。注文データを変更し、ユーザーに通知やその他の操作を送信できます。署名の検証については、通知ファイル内のソース コードを参照してください。デモではパラメータのnotify_idをPOST経由でAlipayに送信し、戻りデータを取得しています。 コードスニペット:

ここで注目するのは、メール送信時にすでに触れています。ソケット接続を開く関数は、前に学習した fopen 関数と同様に、ファイル関数 (fgets()、fgetss()、fputs()、fclose()、feof()) を使用して操作できるファイル ハンドルを返します。 fputs() (fwrite() と同じ) 関数は、POST モードでのデータのフォーム送信をシミュレートするためにコード内で使用されます。最後に、返されたデータは fgets() 関数を通じて取得されます。最後に検証を実行します。詳細はソースコードを参照してください。

要約: 上記がこの記事の全内容です。皆様の学習に役立つことを願っています。

関連する推奨事項:

PHP でマスクされたキーワードを実装する方法

PHP で実装されたカスタム配列ソート関数とソートクラスのメソッド

PHP メソッドで実装されたカスタム配列ソート関数とソートクラス

以上がAlipayオンライン決済インターフェース開発のphp実装の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート