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

java版微信和支付寶退款接口

 更新時間:2018年09月29日 10:30:22   作者:hu136976640  
這篇文章主要為大家詳細(xì)介紹了java版微信退款接口和java版支付寶退款接口,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java微信退款接口和支付寶退款接口的具體代碼,供大家參考,具體內(nèi)容如下

1、微信退款接口 

相對來說我感覺微信的退款接口還是比較好調(diào)用的,直接發(fā)送httppost請求即可;

/**
  * 
  * 微信退款
  * @param transaction_id 微信支付訂單號
  * @param out_refund_no 商戶訂單號
  * @param total_fee 總金額
  * @param refund_fee 退款金額
  * @param op_user_id 操作人
  * @return String
  * @exception
  */
 public String wxPayRefundRequest(String transaction_id, String out_refund_no,
   int total_fee, int refund_fee, String op_user_id) {
  CloseableHttpClient httpclient = null;
  CloseableHttpResponse response = null;
  String strResponse = null;
  try {
   httpclient = ClientCustomSSL.getCloseableHttpClient();
   // 構(gòu)造HTTP請求
   HttpPost httpPost = new HttpPost(Configure.PAY_REFUND_API);
   // PayRefundReqData wxdata = new PayRefundReqData(
   // "1004720096201602263541023415", "16371", 30, 30, "19417");
   PayRefundReqData wxdata = new PayRefundReqData(transaction_id,
     out_refund_no, total_fee, refund_fee, op_user_id);
   String requestStr = Util.ConvertObj2Xml(wxdata);
   StringEntity se = new StringEntity(requestStr.toString());
   httpPost.setEntity(se);
   // 發(fā)送請求
   response = httpclient.execute(httpPost);
 
   HttpEntity entity = response.getEntity();
   if (entity != null) {
    SAXReader saxReader = new SAXReader();
    Document document = saxReader.read(entity.getContent());
    Element rootElt = document.getRootElement();
    // 結(jié)果碼
    String returnCode = rootElt.elementText("return_code");
    String resultCode = rootElt.elementText("result_code");
    if ("SUCCESS".equals(returnCode)&&"SUCCESS".equals(resultCode)) {
     strResponse=returnCode;
    }else {
     strResponse=rootElt.elementText("err_code_des");
    }
   }
    EntityUtils.consume(entity); 
  } catch (Exception e) {
   Logger.getLogger(getClass()).error("payRefundRequest", e);
  } finally {
   try {
    response.close();
    httpclient.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    Logger.getLogger(getClass()).error("payRefundRequest關(guān)閉異常:", e);
   }
  }
  return strResponse;
 }

報錯的話請檢查加密的sign是否正確,還有就是調(diào)用的接口地址是否正確

2、支付寶退款接口 

支付寶直接導(dǎo)入支付寶封裝好的jar包直接調(diào)用即可,官網(wǎng)下載地址

調(diào)用方法:

/**
  * 
  * 支付寶退款請求
  * @param out_trade_no 訂單支付時傳入的商戶訂單號,不能和 trade_no同時為空。
  * @param trade_no 支付寶交易號,和商戶訂單號不能同時為空
  * @param refund_amount 需要退款的金額,該金額不能大于訂單金額,單位為元,支持兩位小數(shù)
  * @return 
  * String
  * @exception 
  */
 public String alipayRefundRequest(String out_trade_no,String trade_no,double refund_amount){
 
  // 發(fā)送請求
  String strResponse = null;
  try {
   AlipayClient alipayClient = new DefaultAlipayClient
     (AlipayConfig.alipayurl,AlipayConfig.appid,
       AlipayConfig.private_key,AlipayConfig.content_type,AlipayConfig.input_charset,AlipayConfig.ali_public_key);
   AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
   AlipayRefundInfo alidata= new AlipayRefundInfo();
   alidata.setOut_trade_no(out_trade_no);
   alidata.setRefund_amount(refund_amount);
   alidata.setTrade_no(trade_no);
   request.setBizContent(JsonUtils.convertToString(alidata));
   AlipayTradeRefundResponse response = alipayClient.execute(request);
   strResponse=response.getCode();
   if ("10000".equals(response.getCode())) {
    strResponse="退款成功";
   }else {
    strResponse=response.getSubMsg();
   }
  } catch (Exception e) {
   Logger.getLogger(getClass()).error("alipayRefundRequest", e);
  }
  return strResponse;
 
 }

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

相關(guān)文章

  • Spring mvc攔截器實現(xiàn)原理解析

    Spring mvc攔截器實現(xiàn)原理解析

    這篇文章主要介紹了Spring mvc攔截器實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • mybatisplus之Wrappers.ne踩坑記錄解決

    mybatisplus之Wrappers.ne踩坑記錄解決

    這篇文章主要為大家介紹了mybatisplus之Wrappers.ne踩坑記錄解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • java獲取一個文本文件的編碼(格式)信息

    java獲取一個文本文件的編碼(格式)信息

    這篇文章主要介紹了java獲取一個文本文件的編碼(格式)信息,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • MyBatis 動態(tài) SQL 優(yōu)化之標(biāo)簽的實戰(zhàn)與技巧(常見用法)

    MyBatis 動態(tài) SQL 優(yōu)化之標(biāo)簽的實戰(zhàn)與技巧(常見用法)

    本文通過詳細(xì)的示例和實際應(yīng)用場景,介紹了如何有效利用這些標(biāo)簽來優(yōu)化 MyBatis 配置,提升開發(fā)效率,確保 SQL 的高效執(zhí)行和安全性,感興趣的朋友跟隨小編一起看看吧
    2025-04-04
  • SpringBoot 創(chuàng)建容器的實現(xiàn)

    SpringBoot 創(chuàng)建容器的實現(xiàn)

    這篇文章主要介紹了SpringBoot 創(chuàng)建容器的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 基于java構(gòu)造方法Vector創(chuàng)建對象源碼分析

    基于java構(gòu)造方法Vector創(chuàng)建對象源碼分析

    這篇文章主要介紹了java構(gòu)造函數(shù)中對Vector源碼及原理的分析,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家早日升職加薪
    2021-09-09
  • IDEA快捷鍵和各種實用功能小結(jié)

    IDEA快捷鍵和各種實用功能小結(jié)

    這篇文章主要介紹了IDEA快捷鍵總結(jié)和各種實用功能,包括IDEA中內(nèi)容輔助鍵和快捷鍵,修改自動補全快捷鍵,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Java?map為什么不能遍歷的同時進(jìn)行增刪操作

    Java?map為什么不能遍歷的同時進(jìn)行增刪操作

    這篇文章主要介紹了Java?map為什么不能遍歷的同時進(jìn)行增刪操作,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • Spring Boot利用@Async異步調(diào)用:ThreadPoolTaskScheduler線程池的優(yōu)雅關(guān)閉詳解

    Spring Boot利用@Async異步調(diào)用:ThreadPoolTaskScheduler線程池的優(yōu)雅關(guān)閉詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot利用@Async異步調(diào)用:ThreadPoolTaskScheduler線程池的優(yōu)雅關(guān)閉的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • Java SpringMVC數(shù)據(jù)響應(yīng)超詳細(xì)講解

    Java SpringMVC數(shù)據(jù)響應(yīng)超詳細(xì)講解

    Spring?MVC?是?Spring?提供的一個基于?MVC?設(shè)計模式的輕量級?Web?開發(fā)框架,本質(zhì)上相當(dāng)于?Servlet,Spring?MVC?角色劃分清晰,分工明細(xì),本章來講解SpringMVC數(shù)據(jù)響應(yīng)
    2022-04-04

最新評論

秦皇岛市| 望都县| 景洪市| 都江堰市| 潼南县| 保定市| 宣化县| 连江县| 平邑县| 博野县| 定兴县| 武宁县| 伊金霍洛旗| 高要市| 龙胜| 收藏| 会泽县| 井冈山市| 江山市| 潼南县| 邹城市| 芜湖县| 泽州县| 岑溪市| 城固县| 呼伦贝尔市| 晋江市| 得荣县| 察哈| 冕宁县| 张掖市| 通海县| 江都市| 册亨县| 刚察县| 上犹县| 青神县| 米林县| 黄平县| 柘城县| 双峰县|