ホームページ >WeChat アプレット >WeChatの開発 >WeChat PayがH5決済を開発
この記事では、WeChat ペイメントにおける H5 ペイメント実装プロセスを紹介します。
H5 支払いは、パブリック アカウントに基づいて開発された非 WeChat ブラウザ支払い方法であり、WeChat 外部のモバイル H5 ページでの WeChat 支払いのニーズを満たすことができます。 。
テストアドレス
http://wxpay.weixin.qq.com/pub_v2/pay/wap.v2.php
http://wxpay.weixin.qq.com/mch/pay/h5.v2.php
レンダリング
フローチャート
主なことは、最初に商品の名前と価格、および取引番号を定義することです。コードは以下のように表示されます。
include_once("../WxPayPubHelper/WxPayPubHelper.php"); //使用统一支付接口 $unifiedOrder = new UnifiedOrder_pub(); //设置统一支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 $unifiedOrder->setParameter("body","H5支付测试");//商品描述 $timeStamp = time(); $out_trade_no = WxPayConf_pub::APPID."$timeStamp"; $unifiedOrder->setParameter("out_trade_no","$out_trade_no");//商户订单号 $unifiedOrder->setParameter("total_fee","1");//总金额 //$unifiedOrder->setParameter("notify_url",WxPayConf_pub::NOTIFY_URL);//通知地址 $unifiedOrder->setParameter("trade_type","WAP");//交易类型 //非必填参数,商户可根据实际情况选填 $unifiedOrder->setParameter("device_info","100001");//设备号
上記のパラメータは、最終的に次のような XML パラメータにカプセル化されます
<xml> <out_trade_no></out_trade_no> <total_fee>1</total_fee> //<notify_url></notify_url> <trade_type></trade_type> <device_info>100001</device_info> <appid></appid> <mch_id>1237905502</mch_id> <spbill_create_ip></spbill_create_ip> <nonce_str></nonce_str> <sign></sign></xml>
を呼び出して、上記の XML を統合支払いインターフェイスに送信します
https://api.mch.weixin.qq.com/pay/unifiedorder
次の XML データを取得します
<xml> <return_code></return_code> <return_msg></return_msg> <appid></appid> <mch_id></mch_id> <device_info></device_info> <nonce_str></nonce_str> <sign></sign> <result_code></result_code> <prepay_id></prepay_id> <trade_type></trade_type> </xml>
この方法で、prepayid を取得します
マーチャントサーバーは、API の注文をリクエストするために統合注文インターフェイスを呼び出します。 、パブリック API [統一注文] を参照してください (インターフェイスの trade_type を WAP として定義する必要があります)。WeChat はプリペイド ID を販売者に返し、販売者は固定形式でディープリンクを生成し、ユーザーはディープリンクをクリックして WeChat 支払いを有効にします。
ディープリンクの形式:
weixin://wap/pay?appid%3Dwxf5b5e87a6a0fde94%26noncestr%3D123%26package%3D123%26prepayid%3Dwx20141203201153d7bac0d2e10889028866%26sign%3D6AF4B69CCC30926F85770F900D098D64%26timestamp%3D1417511263
ディープリンクを生成する手順は次のとおりです:
ステップ 1: URL 形式に従ってパラメータを組み立て、$value 部分で URL エンコードを実行し、string1 を生成します:
string1: key1=Urlencode ($value1)&key2=Urlencode ($value2, &...
ステップ 2: string1 全体を Urlencode して string2 を生成します:
String2=Urlencode(string1);
ステップ 3: プレフィックスを結合して最終的なディープリンクを生成します
例:
String1:
appid=wxf5b5e87a6a0fde94&noncestr=123&package=WAP&prepayid=wx201412101630480281750c890475924233&sign=53D411FB74FE0B0C79CC94F2AB0E2333×tamp=1417511263
string1 全体に対して URLEncode
string2 を再度実行します:
appid%3Dwxf5b5e87a6a0fde94%26noncestr%3D123%26package%3DWAP%26prepayid%3Dwx201412101630480281750c890475924233%26sign%3D53D411FB74FE0B0C79CC94F2AB0E2333%26timestamp%3D1417511263
最終的なディープリンクを取得するには、weixin://wap/pay? weixin://wap/pay?appid%3Dwxf5b5e87a6a0fde94%26noncestr%3D123%26package%3DWAP%26prepayid%3Dwx201412101630480281750c890475924233%26sign%3D53D411FB74FE0B0C79CC94F2AB0E2333%26timestamp%3D1417511263
必須 | タイプ | 値の例 | 説明 | パブリックアカウントID | |
---|---|---|---|---|---|
は | 文字列(32) | wx888888888 8888888 | WeChat によって割り当てられた公開アカウント ID | ランダム文字列 | |
は | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | ランダム文字列、32ビット以下ですs. 推奨乱数生成アルゴリズム | 注文詳細拡張文字列 | |
は | String(32) | WAP | 拡張フィールド、WAP | 前払いトランザクションセッションID | |
は | String(64)を埋めるように修正されました | wx20141027 2009395522657a690389285100 | WeChat の統合順序 インターフェイスによって返されたプリペイド コールバック ID は、後続のインターフェイス呼び出しで使用されます。値は 2 時間有効です。 | は | です。|
C380BEC2BFD727A4B6845133519F3AD6 | 署名、詳細については署名を参照してください。生成アルゴリズム | timestamp | timestamp | は、 | |
1414561699 | の現在時刻です。その他の詳細については、タイムスタンプのルールを参照してください。 |
開発ドキュメント: https://pay.weixin.qq.com/wiki/doc/api/wap.php?chapter=15_1 3. 新しいバージョンのプロセス1.販売者側で注文を完了し、WeChat Pay を使用して支払います 2. 販売者のバックエンドが WeChat Pay への注文リクエストを開始します (統合注文インターフェイスを呼び出します) 注: トランザクション タイプ trade_type=MWEB 3。 4 . 統合注文インターフェイスは、支払いジャンプ URL (フローチャート内の WeChat 転送ページのアドレスであるパラメーター名「mweb_url」) などの支払い関連パラメーターを販売者のバックエンドに返します。 5.統合注文インターフェイスによって返されたパラメーター、mweb_url をフロントエンドに返します 6. 販売者は、フロントエンド ページを通じて WeChat 転送ページ mweb_url にアクセスします (WeChat Pay は、このステップで参照を確認して、リクエストのソースかどうかを判断します)は合法です) 7. 転送ページ mweb_url は WeChat 支払いレジを呼び出します 8. WeChat Pay チェックアウトが有効になり、同時に mweb_url 転送ページが閉じられます 9. WeChat Pay チェックアウト WeChat Pay 開発 H5 決済に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。 |