91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java微信支付之關閉訂單

發布時間:2020-09-09 20:39:50 來源:腳本之家 閱讀:270 作者:Phil_Jing 欄目:編程語言

本文實例為大家分享了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; 
  } 
} 

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

开江县| 股票| 承德市| 兴业县| 白沙| 大丰市| 高安市| 临湘市| 中江县| 郯城县| 克山县| 北辰区| 南部县| 湘潭县| 磴口县| 碌曲县| 无锡市| 类乌齐县| 灯塔市| 灵山县| 中西区| 利川市| 黄陵县| 临漳县| 夏邑县| 团风县| 泾川县| 西安市| 图片| 张家川| 曲麻莱县| 伊金霍洛旗| 阳高县| 临洮县| 驻马店市| 五指山市| 礼泉县| 东阳市| 定日县| 鄄城县| 中西区|