1. 程式人生 > >關於支付寶退款總結

關於支付寶退款總結

# 關於支付寶退款介面 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可以共用,因為退款的介面在開發     者平臺上是輔助介面分類裡面的,不需要重新簽約。