支付寶退款(JAVA版)


配置申請地址 https://open.alipay.com/platform/home.html(開發對接中需要以下參數)
//支付寶網關地址:https://openapi.alipay.com/gateway.do 
//支付寶申請的APPID
//商戶應用私鑰(與支付寶數據交互時,保證數據安全,防止數據被篡改)
//支付寶公鑰(與支付寶數據交互時,保證數據安全,防止數據被篡改)
//簽名算法類型(RSA2或者RSA,支付寶推薦使用RSA2)
//編碼格式(utf-8,gb2312,gbk) 
詳細接口或參數說明,以支付寶官方文檔為准, 支付寶API網址( https://opendocs.alipay.com/apis)
 
一.支付寶退款
  1.導入支付寶提供的jar,此為Maven版
<dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-sdk-java</artifactId>
    <version>4.9.124.ALL</version>
</dependency>

  2.關鍵代碼

     //網關地址,APPID,商戶應用私鑰,數據格式,編碼格式,支付寶公鑰,簽名算法類型
     AlipayClient alipayClient = new DefaultAlipayClient(aliPayGateway,appID,rsa_private_key,format,charset,alipayPublicKey,signType);
     //請求對象,調用支付寶 不同接口,需使用不同對象 AlipayTradeRefundRequest alipayTradeCloseRequest =new AlipayTradeRefundRequest();
     //請求參數集合對象,除了公共參數之外,所有參數都可通過此對象傳遞 AlipayTradeRefundModel alipayTradeRefundModel =new AlipayTradeRefundModel();
     //退款的訂單號,傳入生成支付訂單時的訂單號即可 alipayTradeRefundModel.setOutTradeNo(outTradeNo);
     //退款金額 alipayTradeRefundModel.setRefundAmount(refundAmount);
     //退款的原因 alipayTradeRefundModel.setRefundReason(refundReason); alipayTradeCloseRequest.setBizModel(alipayTradeRefundModel); AlipayTradeRefundResponse refundResponse= null; try { refundResponse = alipayClient.execute(alipayTradeCloseRequest); } catch (AlipayApiException e) { return ReturnUtils.returnVal(CommonConstants.appCode.UNKNOWNERROR.get(),refundResponse.getMsg()); }
     //退款的執行流程與支付不太一樣,支付時成功之后,需要通知回調接口,而退款則不需要,只需判斷響應參數 refundResponse.getFundChange().equals("Y") 判斷是否發生了資金變化, equals("Y")表示資金發生了變化,退款成功 if (refundResponse.getFundChange().equals("Y")) { return ReturnUtils.returnVal(CommonConstants.appCode.SUCCESS.get(),refundResponse.getMsg()); }else { return ReturnUtils.returnVal(CommonConstants.appCode.UNKNOWNERROR.get(),refundResponse.getMsg()); }

 如文中存在錯誤,請聯系WX指正,不勝感謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM