この記事では、参照のためにJava Wechatの支払い閉鎖注文の特定のコードを共有しています。特定のコンテンツは次のとおりです
公式文書
1。アプリケーションシナリオ
販売者の注文の支払いは失敗し、新しい注文番号を生成し、再び支払いを開始する必要があります。繰り返しの支払いシステムの支払いタイムアウトを避けるために、元の注文番号のチェックオーダーを呼び出す必要があります。システムの終了は受け入れられなくなります。ユーザーの注文を回避するには、チェックオーダーインターフェイスに電話してください。
注:注文インターフェイスは、順序が生成された直後に呼び出すことはできず、最小コール時間間隔は5分です。
2。インターフェイスアドレス
https://api.mch.weixin.qq.com/pay/closeorder
3。パラメーターを要求します
商人システムの注文番号に従ってのみ閉じる
パッケージcom.phil.wechatpay.model.rep; java.io.serializableをインポートします。 / ** *閉じる注文要求パラメーター(通常のXML) * @Author Phil * @Date 2017年7月25日 * */パブリッククラスCloseOrderParams拡張抽象PayParams拡張{/ ** * * */ private static final static long serialversionuid = -42066649288803827244l;プライベート文字列out_trade_no; // merchant Order Number public String getout_trade_no(){return out_trade_no; } public void setout_trade_no(string out_trade_no){this.out_trade_no = out_trade_no; }}4。結果を返します
パッケージcom.phil.wechatpay.model.resp; java.io.serializableをインポートします。 com.phil.common.annotation.notrequireをインポートします。 / ** * close注文返品パラメーター(<![cdata []]> xml形式) * * @author phil * @date 2017年7月25日 * */ public close resorresults extends abstractpayresult explents serializable {private static final long serialversionuid = -1996103742747816922l; private string return_code; // returnステータスコードの成功/失敗@notrequire private string return_msg; // return Information/**** return_code is success ****/private string result_code; // business result private string result_msg; // business result description @notrequire private文字列err_code5。注文を閉じます
パッケージcom.phil.wechatpay.controller; javax.servlet.http.httpservletrequestをインポートします。 javax.servlet.http.httpservletResponseをインポートします。 Import org.springframework.beans.factory.annotation.autowired; org.springframework.stereotype.controllerをインポートします。 org.springframework.web.bind.annotation.requestmappingをインポートします。 Import org.springframework.web.bind.annotation.responsebody; com.phil.common.config.wechatconfigをインポートします。 com.phil.common.util.httprequtilをインポートします。 com.phil.common.util.payutilをインポートします。 com.phil.common.util.signatureutilをインポートします。 com.phil.common.util.xmlutilをインポートします。 com.phil.wechatpay.model.rep.closeorderparamsをインポートします。 com.phil.wechatpay.model.rep.closeorderresultをインポートします。 com.phil.wechatpay.service.wechatpayserviceをインポートします。 /***閉じる* @author phil* @date 2017年7月25日**/@controller @RequestMapping( "/wxpay/")public class wechatpaycloseordercontroller {@autowired private wechatpayservice wechatpayservice; @ResponseBody @RequestMapping( "CloseOrder")public closeOrderResult CloseOrder(httpservletrequest request、httpservletResponse応答)スロー{CloseOrderResult closeOrderResult = null; CloseOrderParams closeOrderParams = new closeOrderParams(); closeOrderParams.setAppid(wechatconfig.app_id); CloseOrderParams.setmch_id(wechatconfig.mch_id); CloseOrderParams.setNonce_str(payutil.createnoncestr()); CloseOrderParams.setout_trade_no( ""); // //要求されたXML文字列closeorderxml = wechatpayservice.abstractpaytoxml(closeOrderParams); //署名をサービスにマージしますhttprequtil.httpsDefaultExecute(httprequtil.post_method、wechatconfig.close_order_url、null、closeorderxml); //署名検証を実行する場合(Signatureutil.CheckissignValidFromWeixin(CloseOrderResultXml)){closeOrderResult = xmlutil.getObjectfromxml(closeOrderResultxml、closeOrderResult.class); } CloseOrderResultを返します。 }}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。