欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

支付宝退款总结

程序员文章站 2022-03-19 22:12:56
1.支付宝退款接口需要的参数 支付宝网关,appID,private_key,public_key,sign_type,input_charset,format; 2.使用接口需要上传的参数 支付宝支付交易号/订单号,退款金额,参数只要这两个就能完成退款,不过支付宝的文档上面有的写的可选的,即使是可 ......

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("支付宝网关", appid, private_key, "json", input_charset, public_key, 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可以共用,因为退款的接口在开发者平台上是辅助接口分类里面的,不需要重新签约。