经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
支付宝退款总结
来源:cnblogs  作者:苏严Syan丶  时间:2018/11/2 9:19:49  对本文有异议

1.支付宝退款接口需要的参数

  1. 支付宝网关,appID,private_key,public_key,sign_type,input_charset,format;

2.使用接口需要上传的参数

  1. 支付宝支付交易号/订单号,退款金额,参数只要这两个就能完成退款,不过支付宝的文档上面有的写的可选的,即使是可选的,你也要写上;

3.参数获取方法

  1. 支付宝网关:"https://openapi.alipay.com/gateway.do";
  2. appID:这个就需要商户登陆支付宝开发者平台,在"网页&移动应用"添加应用,创建应用后,添加应用功能,上传所需 的数据,之后生成一个appID,然后提交审核就可以了;
  3. sign_type:选择"RSA2"
  4. public_key:在申请应用的时候,下载一个"RSA签名验签工具windows_V1.4",网上就可以找到,在这个里面生成公钥,上传到支付宝;
  5. private_key:用上面下载的工具,将公钥上传会产生一个对应的秘钥;
  6. input_charset:"UTF-8",网上说必须要大写,这个没试过;
  7. format:"json";

4.开始退款代码

  1. try {
  2. AlipayClient alipayClient = new DefaultAlipayClient("支付宝网关", appID, private_key, "json", input_charset, public_key, sign_type);
  3. AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
  4. request.setBizContent("{" +
  5. "\"out_trade_no\":\"" + 订单号 + "\"," +
  6. "\"trade_no\":\"" + 支付宝交易号 + "\"," +
  7. "\"refund_amount\":" + 退款金额 + "," +
  8. "\"refund_currency\":\"CNY\"," +
  9. "\"org_pid\":\"" + null + "\"" +
  10. " }");
  11. AlipayTradeRefundResponse response = alipayClient.execute(request);
  12. log.info("返回结果:" + response.getBody());
  13. } catch (AlipayApiException e) {
  14. e.printStackTrace();
  15. log.info("支付宝退款>>退款失败: 调用支付宝接口出现异常");
  16. return ResultUtil.createFailureResult("REQUEST_EXCEPTION", "调用支付宝接口出现异常");
  17. }

5.易错点

  1. 开始说的支付宝API里面的参数,虽然有的是可选的,但是最下面的“org_pid”这个参数,如果加不上的话,就会报40004,参数不正确的错误,这个是一定要加上的,虽然后面跟的值是null;
  2. 另外,如果公司之前做过关于支付的话,是不需要重新添加应用签约的,appID可以共用,因为退款的接口在开发者平台上是辅助接口分类里面的,不需要重新签约。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号