關於支付寶退款總結
# 關於支付寶退款介面 2018年10月31日 > 1.支付寶退款介面需要的引數 支付寶閘道器,appID,private_key,public_key,sign_type,input_charset,format; > 2.使用介面需要上傳的引數 支付寶支付交易號/訂單號,退款金額,引數只要這兩個就能完成退款,不過支付寶的文件上面有的寫的可選的,即使 是可選的,你也要寫上; > 3.引數獲取方法 支付寶閘道器:"https://openapi.alipay.com/gateway.do"; appID:這個就需要商戶登陸支付寶開發者平臺,在"網頁&移動應用"新增應用,建立應用後,新增應用功能,上傳所需 的資料,之後生成一個appID,然後提交稽核就可以了; sign_type:選擇"RSA2"。 public_key:在申請應用的時候,下載一個"RSA簽名驗籤工具windows_V1.4",網上就可以找到,在這個裡面生成公 鑰,上傳到支付寶; private_key:用上面下載的工具,將公鑰上傳會產生一個對應的祕鑰; input_charset:"UTF-8",網上說必須要大寫,這個沒試過; format:"json"; > 4.開始退款程式碼 try { AlipayClient alipayClient = new DefaultAlipayClient(SystemConstants.ZHIFUBAO_GATEWAY, AlipayConfig.alipay_appID, AlipayConfig.alipay_private_key, "json", AlipayConfig.input_charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type); AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); request.setBizContent("{" + "\"out_trade_no\":\"" + 訂單號 + "\"," + "\"trade_no\":\"" + 支付寶交易號 + "\"," + "\"refund_amount\":" + 退款金額 + "," + "\"refund_currency\":\"CNY\"," + "\"org_pid\":\"" + null + "\"" + " }"); AlipayTradeRefundResponse response = alipayClient.execute(request); log.info("返回結果:" + response.getBody()); } catch (AlipayApiException e) { e.printStackTrace(); log.info("支付寶退款>>退款失敗: 呼叫支付寶接口出現異常"); return ResultUtil.createFailureResult("REQUEST_EXCEPTION", "呼叫支付寶接口出現異常"); } > 5.易錯點 開始說的支付寶API裡面的引數,雖然有的是可選的,但是最下面的“org_pid”這個引數,如果加不上的話,就會 報40004,引數不正確的錯誤,這個是一定要加上的,雖然後面跟的值是null; 另外,如果公司之前做過關於支付的話,是不需要重新新增應用簽約的,appID可以共用,因為退款的介面在開發 者平臺上是輔助介面分類裡面的,不需要重新簽約。