日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 微信退款接口_java版微信和支付宝退款接口

發布時間:2025/4/5 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 微信退款接口_java版微信和支付宝退款接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

1、微信退款接口

相對來說我感覺微信的退款接口還是比較好調用的,直接發送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();

// 構造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);

// 發送請求

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();

// 結果碼

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關閉異常:", e);

}

}

return strResponse;

}

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

2、支付寶退款接口

支付寶直接導入支付寶封裝好的jar包直接調用即可,官網下載地址

調用方法:

/**

*

* 支付寶退款請求

* @param out_trade_no 訂單支付時傳入的商戶訂單號,不能和 trade_no同時為空。

* @param trade_no 支付寶交易號,和商戶訂單號不能同時為空

* @param refund_amount 需要退款的金額,該金額不能大于訂單金額,單位為元,支持兩位小數

* @return

* String

* @exception

*/

public String alipayRefundRequest(String out_trade_no,String trade_no,double refund_amount){

// 發送請求

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;

}

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

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的java 微信退款接口_java版微信和支付宝退款接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。