支付宝退款后台代码开发

支付宝退款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= "xx@163.com";
	//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

	// 合作身份者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个参数不要出错,其他参数直接百度就行。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值