最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java微信支付之關(guān)閉訂單

 更新時(shí)間:2018年05月07日 08:37:47   作者:Phil_Jing  
這篇文章主要為大家詳細(xì)介紹了Java微信支付之關(guān)閉訂單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java微信支付之關(guān)閉訂單的具體代碼,供大家參考,具體內(nèi)容如下

官方文檔

一、應(yīng)用場(chǎng)景

商戶訂單支付失敗需要生成新單號(hào)重新發(fā)起支付,要對(duì)原訂單號(hào)調(diào)用關(guān)單,避免重復(fù)支付
系統(tǒng)下單后,用戶支付超時(shí),系統(tǒng)退出不再受理,避免用戶繼續(xù),請(qǐng)調(diào)用關(guān)單接口
注意:訂單生成后不能馬上調(diào)用關(guān)單接口,最短調(diào)用時(shí)間間隔為5分鐘。

二、接口地址

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

三、請(qǐng)求參數(shù)

只能根據(jù)自己商戶系統(tǒng)的訂單號(hào)關(guān)閉

package com.phil.wechatpay.model.rep; 
 
import java.io.Serializable; 
 
/** 
 * 關(guān)閉訂單請(qǐng)求參數(shù)(正常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; //商戶訂單號(hào)  
   
  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; 
  } 
} 

四、返回結(jié)果

package com.phil.wechatpay.model.resp; 
 
import java.io.Serializable; 
 
import com.phil.common.annotation.NotRequire; 
 
/** 
 * 關(guān)閉訂單返回參數(shù)(帶<![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; // 返回狀態(tài)碼SUCCESS/FAIL 
  @NotRequire 
  private String return_msg; //返回信息 
 
  /**** return_code 為SUCCESS ****/ 
  private String result_code;// 業(yè)務(wù)結(jié)果 
  private String result_msg;// 業(yè)務(wù)結(jié)果描述  
  @NotRequire 
  private String err_code;// 錯(cuò)誤返回的信息描述 
  @NotRequire 
  private String err_code_des;// 錯(cuò)誤返回的信息描述 
} 

五、關(guān)閉訂單

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; 
 
/** 
 * 關(guān)閉訂單 
 * @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("");//自己傳入 
    //請(qǐng)求的xml 
    String closeOrderXml = wechatPayService.abstractPayToXml(closeOrderParams);//簽名合并到service 
    // 返回<![CDATA[SUCCESS]]>格式的XML 
    String closeOrderResultXmL = HttpReqUtil.HttpsDefaultExecute(HttpReqUtil.POST_METHOD,WechatConfig.CLOSE_ORDER_URL, null, closeOrderXml); 
    // 進(jìn)行簽名校驗(yàn) 
    if (SignatureUtil.checkIsSignValidFromWeiXin(closeOrderResultXmL)) { 
      closeOrderResult = XmlUtil.getObjectFromXML(closeOrderResultXmL, CloseOrderResult.class); 
    } 
    return closeOrderResult; 
  } 
} 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java后端請(qǐng)求接收多個(gè)對(duì)象入?yún)⒌臄?shù)據(jù)方法(推薦)

    Java后端請(qǐng)求接收多個(gè)對(duì)象入?yún)⒌臄?shù)據(jù)方法(推薦)

    本文介紹了如何使用SpringBoot框架接收多個(gè)對(duì)象作為HTTP請(qǐng)求的入?yún)?通過創(chuàng)建數(shù)據(jù)模型、DTO類和Controller,我們可以輕松處理復(fù)雜的請(qǐng)求數(shù)據(jù)
    2024-11-11
  • 解決JAVA8 Collectors.toMap value為null報(bào)錯(cuò)的問題

    解決JAVA8 Collectors.toMap value為null報(bào)錯(cuò)的問題

    這篇文章主要介紹了解決JAVA8 Collectors.toMap value為null報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • mybatis中的count()按條件查詢方式

    mybatis中的count()按條件查詢方式

    這篇文章主要介紹了mybatis中的count()按條件查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringBoot項(xiàng)目中使用@Scheduled讀取動(dòng)態(tài)參數(shù)

    SpringBoot項(xiàng)目中使用@Scheduled讀取動(dòng)態(tài)參數(shù)

    這篇文章主要介紹了SpringBoot項(xiàng)目中使用@Scheduled讀取動(dòng)態(tài)參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot @JsonDeserialize自定義Json序列化方式

    SpringBoot @JsonDeserialize自定義Json序列化方式

    這篇文章主要介紹了SpringBoot @JsonDeserialize自定義Json序列化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • IDEA2021.2永久激活碼最新超詳細(xì)(激活到2099)

    IDEA2021.2永久激活碼最新超詳細(xì)(激活到2099)

    這篇文章主要介紹了IDEA2021.2永久激活碼,是idea2021版最新激活方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • springboot3.X 無法解析parameter參數(shù)問題分析

    springboot3.X 無法解析parameter參數(shù)問題分析

    本文介紹了Spring Boot 3.2.1版本中調(diào)用接口時(shí)出現(xiàn)的參數(shù)解析問題,該錯(cuò)誤是由Spring新版本加強(qiáng)的錯(cuò)誤校驗(yàn)和報(bào)錯(cuò)提示導(dǎo)致的,在Spring 6.1之后,官方要求URL中的傳參必須使用`@PathVariable`聲明用于接收的變量,而不能省略`@RequestParam`注解,感興趣的朋友一起看看吧
    2025-03-03
  • 在MyBatis中使用 # 和 $ 書寫占位符的區(qū)別說明

    在MyBatis中使用 # 和 $ 書寫占位符的區(qū)別說明

    這篇文章主要介紹了在MyBatis中使用 # 和 $ 書寫占位符的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • java 服務(wù)器接口快速開發(fā)之servlet詳細(xì)教程

    java 服務(wù)器接口快速開發(fā)之servlet詳細(xì)教程

    Servlet(Server Applet)是Java Servlet的簡(jiǎn)稱,稱為小服務(wù)程序或服務(wù)連接器,用Java編寫的服務(wù)器端程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,主要功能在于交互式地瀏覽和生成數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容
    2021-06-06
  • 淺談java常量池

    淺談java常量池

    下面小編就為大家?guī)硪黄獪\談java常量池。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06

最新評(píng)論

曲靖市| 友谊县| 石城县| 乐平市| 含山县| 开远市| 桐乡市| 邵东县| 德惠市| 龙川县| 道孚县| 吉木乃县| 宁乡县| 南木林县| 高阳县| 阿尔山市| 上栗县| 肃宁县| 铁力市| 基隆市| 淳化县| 甘德县| 洛川县| 晴隆县| 桐柏县| 新竹县| 太康县| 合作市| 中方县| 秀山| 平罗县| 东方市| 循化| 禹州市| 鸡泽县| 宜君县| 巴马| 铜山县| 陆丰市| 社会| 临武县|