支付寶退款後臺代碼開發

支付寶退款api https://doc.open.alipay.com/docs/api.htm?spm=a219a.7629065.0.0.PbaltX&apiId=759&docType=4

根據支付寶退款文檔,填入參數後,就可以調通支付寶退款接口,並且順利退款。

但是在這裏說的是,有些參數不要弄錯了,一般的參數正確沒有問題,但是,有個祕鑰一定不能出錯,最後肯導致的結果是錢是退成功了,但是response = alipayClient.execute(request);執行的時候會報錯,導致拋異常,後面的邏輯沒有辦法處理,所以這裏一定要小心。

現在先將代碼寫出來

退款代碼

 //退款
    @RequestMapping(value = "/orderBackMoney/{code}")
    public void delete(@PathVariable String code, PrintWriter out) {
        TfunUserOrder tfunUserOrder = tfunUserOrderService.findByCode(code);
            AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.REQUEST_URL,
                    AlipayConfig.APP_ID, AlipayConfig.PRIVATE_KEY, AlipayConfig.FORMAT, AlipayConfig.INPUT_CHARSET, AlipayConfig.RETURN_ALIPAY_PUBLIC_KEY, "RSA2");
            AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
            request.setBizContent("{" +
                    "\"out_trade_no\":\"" + tfunUserOrder.getCode() + "\"," +                    //訂單號
                    //"\"trade_no\":\"2014112611001004680003956707\"," +     //支付寶交易號
                    "\"refund_amount\":\"" + tfunUserOrder.getSetSum() + "\"," +         //需要退款的金額,該金額不能大於訂單金額,單位爲元,支持兩位小數
                    "\"refund_reason\":\"正常退款\"," +                       //退款的原因說明
                    "\"out_request_no\":\"HZ01RF001\"" +//標識一次退款請求,同一筆交易多次退款需要保證唯一,如需部分退款,則此參數必傳。
                    "  }");
            AlipayTradeRefundResponse response = null;
            try {
                response = alipayClient.execute(request);
            } catch (AlipayApiException e) {
                e.printStackTrace();
            }
            if (response.isSuccess()) {
                System.out.println(response.getBody());
                //業務邏輯處理
                System.out.println("調用成功");
            } else {
                System.out.println("調用失敗");
                logger.info("*****************退款申請失敗!*********************");
            }
    }

配置類


public class AlipayConfig {

	public  static  String ALIPAYCOUNT= "[email protected]";
	//↓↓↓↓↓↓↓↓↓↓請在這裏配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

	// 合作身份者ID,以2088開頭由16位純數字組成的字符串
	public static String PARTNER = "2088xxxxxxxxxx";
	// 合作伙伴密鑰  MD5密鑰:
	public static String KEY = "MD5祕鑰";
	// 開放平臺密鑰 應用私鑰(SHA256withRsa)
	public static String PRIVATE_KEY = "應用私鑰";
	// 應用2.0簽約2017122094761781  appId
	public static String APP_ID = "2018xxxxx";
	//支付寶公鑰
	public static String RETURN_ALIPAY_PUBLIC_KEY = "支付寶公鑰";

	//↑↑↑↑↑↑↑↑↑↑請在這裏配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


	// 調試用,創建TXT日誌文件夾路徑
	public static String LOG_PATH = "D:\\";

	// 字符編碼格式 目前支持 gbk 或 utf-8
	public static String INPUT_CHARSET = "utf-8";

	// 簽名方式 不需修改
	public static String SIGN_TYPE = "MD5";

	//支付類型
	public static String PAYMENT_TYPE = "1";
	//訂單支付可超時時間
	public static String IT_B_PAY_TIME = "30m";
	//Pc支付網關
	public static String PC_SERVICE = "create_direct_pay_by_user";
	//手機端支付網關
	public static String MOBILE_SERVICE = "alipay.wap.create.direct.pay.by.user";
	//退款網關
	public static String REFUND_SERVICE = "refund_fastpay_by_platform_pwd";
	public static String QUERY_SERVICE = "alipay.trade.query";
	public static String REQUEST_URL="https://openapi.alipay.com/gateway.do";
	public static String FORMAT="json";

}

一些需要的參數說明

your private_key :密鑰 需要將生產的公鑰上傳至支付寶、密鑰留在代碼中使用

alipay_public_key :支付寶公鑰 

這2個參數不要出錯,其他參數直接百度就行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章