WeChat PayがH5決済を開発

高洛峰
高洛峰オリジナル
2017-03-01 09:55:055492ブラウズ

この記事では、WeChat ペイメントにおける H5 ペイメント実装プロセスを紹介します。

1. はじめに

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

レンダリング

WeChat PayがH5決済を開発 WeChat PayがH5決済を開発

フローチャート

WeChat PayがH5決済を開発

2. 商品情報の準備

主なことは、最初に商品の名前と価格、および取引番号を定義することです。コードは以下のように表示されます。

    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>

2. 統合支払いリクエスト

を呼び出して、上記の 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 を取得します

2. DeepLink

マーチャントサーバーは、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&timestamp=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

フィールド名変数名appidnoncestrパッケージprepayid です。 文字列(32)String(32)の現在時刻です。その他の詳細については、タイムスタンプのルールを参照してください。
必須 タイプ 値の例 説明 パブリックアカウント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. 新しいバージョンのプロセス

WeChat PayがH5決済を開発

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 サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。