微信支払いの概要:注文の照会とクローズ


本文は【微信支払いを浅く分析する】シリーズの文章の第7編で、主に微信商戸プラットフォームの注文照会とインタフェースの使用を説明する.
微信支付シリーズはもう6編更新されましたよ~、見たことのない方はご覧くださいね.
微信支払い:支払い結果通知
微信支払い:統一注文インタフェース
微信の支払いを分析する:微信の公衆番号のホームページの授権
宣言:ここの インタフェースは 、 、 、APP にのみ適用され、 方式はここでは適用されません.
1、注文の照会
以下は微信公式の ドキュメントです.
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2

1.1. シーンの適用
このインタフェースはすべての微信が注文を支払うクエリーを提供し、商店は注文インタフェースをクエリーすることで自発的に注文状態をクエリーし、次のビジネスロジックを完成することができる.
           :
◆      、  、        ,              ;
◆        ,               ;
◆       API,  USERPAYING   ;
◆          API  ,       ;

1.2. インタフェースリンク
https://api.mch.weixin.qq.com/pay/orderquery

1.3. 証明書が必要かどうか
不要
1.4. 呼び出しインタフェース
受注インタフェースを照会するには、 または を使用して照会する必要があります.その他のパラメータは、ビジネスプラットフォーム情報の共通パラメータであり、定数です.ここでは説明を省略します.
     :transaction_id(      ,      )
     :out_trade_no(         )

この2つのパラメータのいずれかを入力する必要があります.微信は を使用してクエリーすることを推奨しています.以下は実装コードです.
private void doOrderQuery() {
    System.out.println("    ");
    HashMap data = new HashMap();
    // data.put("out_trade_no", out_trade_no);
    data.put("transaction_id", "4008852001201608221962061594");
    try {
        WXPay wxPay = new WXPay(WXPayConfigImpl.getInstance());
        Map r = wxPay.orderQuery(data);
        System.out.println(r);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
wxPay.orderQueryメソッドはパッケージ化されたsdkメソッドであり、具体的な実装は著者githubソースコードを参照してください.
事業者の重要な情報の書き込みについては、公開方法はwxPay.fillRequestDataであり、以下のように実現される.
/**
 *   Map     appid、mch_id、nonce_str、sign_type、sign 
* , 、 * * @param reqData r * @return map * @throws Exception e */ public Map fillRequestData(Map reqData) throws Exception { reqData.put("appid", config.getAppID()); reqData.put("mch_id", config.getMchID()); reqData.put("nonce_str", WXPayUtil.generateNonceStr()); if (SignType.MD5.equals(this.signType)) { reqData.put("sign_type", WXPayConstants.MD5); } else if (SignType.HMACSHA256.equals(this.signType)) { reqData.put("sign_type", WXPayConstants.HMACSHA256); } reqData.put("sign", WXPayUtil.generateSignature(reqData, config.getKey(), this.signType)); return reqData; }

以上、微信の注文を照会する方法について、具体的な戻りパラメータは公式ドキュメントを参照してください.
2、注文書を閉じる
以下は微信公式の ドキュメントです.
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_3

2.1. シーンの適用
次の場合は、オフシングルインタフェースを呼び出す必要があります.
                     ,          ,      ;
     ,      ,        ,      ,       。

注意:注文が生成された後、すぐに関単インタフェースを呼び出すことはできません.最短呼び出し間隔は5分です.
2.2. インタフェースリンク
https://api.mch.weixin.qq.com/pay/closeorder

2.3. 証明書が必要かどうか
不要
2.4. 呼び出しインタフェース
受注インタフェースを閉じるには を使用してクエリーする必要があります.その他のパラメータは、ビジネスプラットフォーム情報の共通パラメータであり、定数です.ここでは説明を省略します.
     :out_trade_no(         )

PS:関単インタフェースは しか使用できません.クエリーインタフェースとは異なり、以下は実装コードです.
private void doOrderClose() {
    System.out.println("    ");
    HashMap data = new HashMap();
    data.put("out_trade_no", out_trade_no);
    try {
        WXPay wxPay = new WXPay(WXPayConfigImpl.getInstance());
        Map r = wxPay.closeOrder(data);
        System.out.println(r);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

関単インタフェースの共通パラメータの設定はクエリー注文と一致しており、ここでは説明を繰り返しません.具体的な戻りパラメータは微信公式ドキュメントを参照してください.
PS:関単インタフェースは呼び出しに失敗し、支払い済み、クローズ済みなどのシーンがあるため、開発者は公式ドキュメントのエラーコードに注意し、異常状況を処理する必要がある.
締めくくり
以上は の呼び出し方式であり、 方式であれば、彼のクローズ受注インタフェースは :reverseであり、著者sdkソースコードにも具体的な実現方式がある.
予告:上一篇文章 ,请期待!!!
ソースコードを事前に一覧表示したい方は、まず私のgithubを見てください.住所は以下の通りです.
​https://github.com/YClimb/wxpay-sdk/blob/master/README.md

作者个人微信,作者微信如下yclimb,标明 可拉入微信支付讨论群与小伙伴一起讨论哦,一定要标明 哦~
これで本文は終わりです.公衆番号に注目してもっとプッシュしてください!!