国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java微信支付之關閉訂單

2024-07-14 08:40:39
字體:
來源:轉載
供稿:網友

本文實例為大家分享了java微信支付之關閉訂單的具體代碼,供大家參考,具體內容如下

官方文檔

一、應用場景

商戶訂單支付失敗需要生成新單號重新發起支付,要對原訂單號調用關單,避免重復支付
系統下單后,用戶支付超時,系統退出不再受理,避免用戶繼續,請調用關單接口
注意:訂單生成后不能馬上調用關單接口,最短調用時間間隔為5分鐘。

二、接口地址

https://api.mch.weixin.qq.com/pay/closeorder

三、請求參數

只能根據自己商戶系統的訂單號關閉

package com.phil.wechatpay.model.rep;  import java.io.Serializable;  /**  * 關閉訂單請求參數(正常XML)  * @author phil  * @date 2017年7月25日  *  */ public class CloseOrderParams extends AbstractPayParams implements Serializable{      /**    *    */   private static final long serialVersionUID = -4206464928803827244L;      private String out_trade_no; //商戶訂單號       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;   } } 

四、返回結果

package com.phil.wechatpay.model.resp;  import java.io.Serializable;  import com.phil.common.annotation.NotRequire;  /**  * 關閉訂單返回參數(帶<![CDATA[]]>XML格式)  *  * @author phil  * @date 2017年7月25日  *  */ public class CloseOrderResult extends AbstractPayResult implements Serializable {      private static final long serialVersionUID = -1996103742747816922L;   private String return_code; // 返回狀態碼SUCCESS/FAIL   @NotRequire   private String return_msg; //返回信息    /**** return_code 為SUCCESS ****/   private String result_code;// 業務結果   private String result_msg;// 業務結果描述    @NotRequire   private String err_code;// 錯誤返回的信息描述   @NotRequire   private String err_code_des;// 錯誤返回的信息描述 } 

五、關閉訂單

package com.phil.wechatpay.controller;  import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;  import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;  import com.phil.common.config.WechatConfig; import com.phil.common.util.HttpReqUtil; import com.phil.common.util.PayUtil; import com.phil.common.util.SignatureUtil; import com.phil.common.util.XmlUtil; import com.phil.wechatpay.model.rep.CloseOrderParams; import com.phil.wechatpay.model.resp.CloseOrderResult; import 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 response) throws Exception {     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     String closeOrderXml = wechatPayService.abstractPayToXml(closeOrderParams);//簽名合并到service     // 返回<![CDATA[SUCCESS]]>格式的XML     String closeOrderResultXmL = HttpReqUtil.HttpsDefaultExecute(HttpReqUtil.POST_METHOD,WechatConfig.CLOSE_ORDER_URL, null, closeOrderXml);     // 進行簽名校驗     if (SignatureUtil.checkIsSignValidFromWeiXin(closeOrderResultXmL)) {       closeOrderResult = XmlUtil.getObjectFromXML(closeOrderResultXmL, CloseOrderResult.class);     }     return closeOrderResult;   } } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 交口县| 永丰县| 遵义县| 尼木县| 朔州市| 顺义区| 广德县| 岗巴县| 英超| 开封县| 靖西县| 湘阴县| 宜阳县| 临汾市| 德州市| 肥西县| 子洲县| 沁阳市| 缙云县| 芮城县| 孟州市| 中牟县| 南城县| 蛟河市| 威海市| 德保县| 沈丘县| 二连浩特市| 南江县| 澳门| 钟祥市| 离岛区| 乐东| 凌海市| 梅州市| 铅山县| 怀仁县| 吴桥县| 通州区| 宣恩县| 灵寿县|