支付寶退款功能開發
阿新 • • 發佈:2019-02-02
當接到這個任務的時候,我說實話沒搞過,之前搞過支付的,感覺退款應該很容易吧,但實際上並沒有我想象的那麼容易。(不是開發難,是別的問題)首先,按照國際慣例,我先在支付寶的官網上檢視開發文件這就是咱們要開發的必備文件![](https://blog.csdn.net/qq_32079585/article/details/71713196)
![](https://img-blog.csdn.net/20170512113402255?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzIwNzk1ODU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://blog.csdn.net/qq_32079585/article/details/71713196)
![](https://blog.csdn.net/qq_32079585/article/details/71713196)
![](https://blog.csdn.net/qq_32079585/article/details/71713196)
![](https://blog.csdn.net/qq_32079585/article/details/71713196)
![](https://img-blog.csdn.net/20170512115331236?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzIwNzk1ODU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
對應的私鑰如果忘記的話,要重新生成公鑰並上傳,私鑰一定要記住並放到你的程式中![](https://blog.csdn.net/qq_32079585/article/details/71713196)
(生成RSA公鑰和私鑰工具)這個可以直接在支付寶開放平臺上下載就好了![](https://img-blog.csdn.net/20170512113820246?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzIwNzk1ODU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
用這個動動生成你需要的公鑰和私鑰,公鑰要上傳到上面說的那個支付寶的開放平臺上。對於java開發人員的話,要特別注意![](https://blog.csdn.net/qq_32079585/article/details/71713196)
![](https://img-blog.csdn.net/20170512113850246?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzIwNzk1ODU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
暫時就寫到這裡,有不懂的歡迎聯絡我的qq:1913284695
我是要用java開發
本以為寫到這裡應該就沒問題了,開始測試,測試的時候只需要請求一個action,然後action中呼叫此工具類裡的這個方法就行了。(切記:一定要先下單。測試下一個0.01元的訂單,然後得到該訂單的out_trade_no和(trade_no,refund_amount:0.01 這幾個測試的時候可以直接寫死)開始編寫程式碼: /** * 支付寶退款工具類 * @author WangXJ */ public class Aliaction { /** * @param out_trade_no 訂單支付時傳入的商戶訂單號,不能和 trade_no同時為空。 * @param trade_no 支付寶交易號,和商戶訂單號不能同時為空 * @param refund_amount 需要退款的金額,該金額不能大於訂單金額,單位為元,支援兩位小數 * @return 將提示資訊返回 */ public synchronized static String alipayRefundRequest(String out_trade_no,String trade_no,double refund_amount){ // 傳送請求 String strResponse = null; try { AlipayClient alipayClient = new DefaultAlipayClient(AliRefundConfig.request_url,AliRefundConfig.app_id,AliRefundConfig.private_key,"json","GBK",AliRefundConfig.ali_public_key,"RSA"); AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); AlipayRefundInfo alidata= new AlipayRefundInfo();//這裡我封裝了一個類用來傳遞json資料 alidata.setOut_trade_no(out_trade_no); alidata.setRefund_amount(refund_amount); alidata.setTrade_no(trade_no); request.setBizContent(JsonUtil.toJSONString(alidata));//將資料格式化成json格式 AlipayTradeRefundResponse response; response = alipayClient.execute(request); if ("10000".equals(response.getCode())) { System.out.println("退款成功");//沒有提示訊息就是好訊息strResponse=null }else { strResponse=response.getSubMsg();//退款失敗的提示資訊 } } catch (Exception e) { e.printStackTrace(); } return strResponse; }
對應的私鑰如果忘記的話,要重新生成公鑰並上傳,私鑰一定要記住並放到你的程式中
用這個動動生成你需要的公鑰和私鑰,公鑰要上傳到上面說的那個支付寶的開放平臺上。對於java開發人員的話,要特別注意
暫時就寫到這裡,有不懂的歡迎聯絡我的qq:1913284695