ネザドキュメント
名前 | ゲートウェイ | サポートアクション | サポートコールバック | 述べる |
---|---|---|---|---|
alipay_app | Alipayアプリ決済 | お支払い・お支払い照会・返金 | 支払う | |
alipay_qr | Alipayのスキャンコード決済 | お支払い・お支払い照会・返金 | 支払う | |
alipay_wap | Alipayモバイルウェブサイトでの支払い | お支払い・お支払い照会・返金 | 支払う | |
alipay_web | Alipay PCサイト決済 | お支払い・お支払い照会・返金 | 支払う | |
wechat_app | WeChatアプリ決済 | お支払い・お支払いに関するお問い合わせ・ご返金・ご返金に関するお問い合わせ | 支払通知書・返金通知書 | |
wechat_h5 | WeChat H5 支払い | お支払い・お支払いに関するお問い合わせ・ご返金・ご返金に関するお問い合わせ | 支払通知書・返金通知書 | 支払いリンクを取得する組み込み機能 |
wechat_mina | WeChat ミニ プログラムの支払い | お支払い・お支払いに関するお問い合わせ・ご返金・ご返金に関するお問い合わせ | 支払通知書・返金通知書 | |
wechat_official | WeChat公式アカウントでのお支払い | お支払い・お支払いに関するお問い合わせ・ご返金・ご返金に関するお問い合わせ | 支払通知書・返金通知書 | |
wechat_qr | WeChatスキャンコード支払い | お支払い・お支払いに関するお問い合わせ・ご返金・ご返金に関するお問い合わせ | 支払通知書・返金通知書 | |
ユニオンウェブ | 銀聯ウェブ決済 | お支払い・お支払いに関するお問い合わせ | 支払通知書 | 古いバージョン |
ユニオンアプリ | 銀聯ウェブ決済 | 支払う | 支払通知書 | 古いバージョン |
paypal_express_checkout | PayPal エクスプレス チェックアウト | お支払い・お支払いに関するお問い合わせ | 支払通知書 | 不安定な |
pingan_wechat_h5 | 平安銀行 WeChat H5 支払い | お支払い・お支払い照会・返金 | 支払う | |
wechatoversea_official | WeChatの国境を越えたパブリックアカウントでの支払い | お支払い・お支払い照会・返金 | 支払う |
サードパーティの支払いに接続する場合、特に複数のサードパーティの支払いに接続する場合は、サードパーティのドキュメントを読み、パラメータの組み立てとデバッグに多くの時間を費やす必要があります。たとえば、サードパーティに電話して注文を行うなどです。支払いを作成する場合、WeChat と Alipay に同時に接続する必要がある場合、書類を収集する必要がありますが、これは非常に面倒であることが想像できます (実際には大丈夫です...うーん...)。
このコンポーネントは、サードパーティと通信するための 3 つの部分を提供します。
各部分は異なるアクションに分割されており、各アクションは一定の形式 (Form) にバインドされており、各フォームの内容は固定されています。
たとえば、サードパーティを積極的に呼び出して注文を出し、支払いを作成する場合 (ChargeRequest)、使用するフォームはChargeRequestForm
です。フォームに記入してコンポーネントを渡した後、コンポーネントはパラメータを処理して 3 番目のフォームを呼び出すことができます。 -パーティー支払い。
この方法では、コンポーネントのフォームの内容を理解するだけで、複数のサードパーティの支払いに接続できます (hh は存在しません)。
ここでは、Alipay PC Web サイトでの支払いを例に挙げます。他の支払いゲートウェイを使用する必要がある場合は、 Cashier
インスタンス化するときに渡される$gateway
変更するだけです。
コンポーネントで使用される基本通貨単位はセントであることに注意してください。
<?php
use Runner NezhaCashier Cashier ;
// 按格式组装好配置
$ config = [
' app_id ' => ' xxxx ' ,
' app_private_key ' => ' xxxxx ' ,
' alipay_public_key ' => ' xxxxx ' ,
];
// 创建实例, 传入要使用的 Gateway
$ cashier = new Cashier ( ' alipay_web ' , $ config );
支払いの作成
<?php
// 组装 ChargeRequestForm
$ data = [
' order_id ' => ' 151627101400000071 ' ,
' subject ' => ' testing ' ,
' amount ' => 1 ,
' currency ' => ' CNY ' ,
' description ' => ' testing description ' ,
' return_url ' => ' https://www.baidu.com ' ,
' expired_at ' => ' 2018-01-23 19:00:00 ' ,
];
$ form = $ cashier -> charge ( $ data );
// 以 laravel 为例
return redirect ( $ form -> get ( ' charge_url ' ));
支払いの小切手
<?php
$ form = $ cashier -> query ([
' order_id ' => ' 151627101400000071 ' ,
]);
var_dump ( ' paid ' === $ form -> get ( ' status ' ));
通知を受け取る
<?php
$ form = $ cashier -> notify ( ' charge ' );
var_dump ( ' paid ' === $ form -> get ( ' status ' ));
var_dump ( $ form -> get ( ' trade_sn ' )); // 取得第三方交易号
返金
<?php
$ form = $ cashier -> refund ([
' order_id ' => ' 151627101400000071 ' ,
' refund_id ' => ' 3151627101400000071 ' ,
' total_amount ' => 1 ,
' refund_amount ' => 1 ,
]);
フィールド名 | 必要ですか | フィールドの説明 | 述べる |
---|---|---|---|
注文ID | はい | 注文番号 | |
主題 | はい | 注文タイトル | |
額 | はい | 注文金額 | 一部の支払いチャネルには金額の上限があることに注意してください。 |
通貨 | はい | 注文通貨 | 支払いチャネルに注意する |
説明 | はい | 注文の説明 | 支払いチャネルにはさまざまな長さの制限があります |
ユーザーIP | いいえ | ユーザーIP | |
return_url | いいえ | コールバックアドレス | Web タイプの支払いチャネルを入力する必要があります |
show_url | いいえ | 表示アドレス | |
体 | いいえ | 注文の詳細 | このパラメータを削除する必要があります |
期限切れ_at | いいえ | 有効期限 | UNIX タイムスタンプ |
作成日 | いいえ | 作成時間 | Unix タイムスタンプ、これが必要だなんて信じられません?? |
他にもまだまだ追加予定です…
Q : 他の SDK と比較した利点は何ですか?
A : SDK がどれほどエレガントで使いやすいものであっても、ほとんどの SDK では、サードパーティのパラメータ名に従ってパラメータを渡す必要があり、ドキュメントを読んで、多くの処理を実行する必要があります。私が望むのは、データベースから注文を取得した後、それを一度に処理して複数の支払いにアクセスできることです。
Q :第三者支払書類を読む必要はありませんか?
A : いいえ、まだ確認する必要があることをお勧めします。コンポーネント内の一部の支払い (WeChat 公式アカウントなど) は、いくつかの特別なパラメーターを渡す必要があります。このコンポーネントは、煩わしい通話の問題を解決するのに役立つだけです。
マサチューセッツ工科大学