支付宝退款接口(java)
⽀付宝退款接⼝(java)
官⽅⽂档写的很详细了,按照⽂档修改⼀下参数调试⼀下就可以,错误⼤多出现在参数上⾯。
看完公共请求参数和请求参数后,便看⼀下请求实例,把请求实例复制黏贴⼀下到⾃⼰代码中:
请求参数上⾯显⽰的很明显 必须的参数其实只有两个:商户订单号(out_trade_no)和⽀付宝交易号(trade_no) ⼆选⼀即可、另⼀个必须请求参数是:退款⾦额(refund_amount)
导⼊sdk
导⼊到项⽬中
下⾯写⾃⼰的代码
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
project教程>qq消息记录怎么删除import com.quest.AlipayTradeRefundRequest;
import com.sponse.AlipayTradeRefundResponse;
fig.AlipayConfig;
public class AlipayRefundUtil {
/**  ⽀付宝退款接⼝
墨子思想* @param out_trade_no 订单⽀付时传⼊的商户订单号,不能和⽀付宝交易号(trade_no)同时为空。
衡水中学高考成绩* @param trade_no ⽀付宝交易号
* @param refund_amount 需要退款的⾦额,该⾦额不能⼤于订单⾦额,单位为元,⽀持两位⼩数
* @return 将提⽰信息返回
*/
public  synchronized static  String alipayRefundRequest(String out_trade_no,String trade_no,double refund_amount) {
String returnStr = null;
String out_request_no="BZ35581R88001";//随机数  不是全额退款,部分退款使⽤该参数
try {
AlipayClient alipayClient = new quest_url, AlipayConfig.app_id,
AlipayConfig.private_refund_key, AlipayConfig.format, AlipayConfig.input_charset, AlipayConfig.ali_refund_key, "RSA2");            AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
request.setBizContent("{" +
"\"out_trade_no\":\"" + out_trade_no + "\"," +
"\"trade_no\":\"" + trade_no + "\"," +
"\"refund_amount\":\"" + refund_amount + "\"," +
"\"out_request_no\":\"" + out_request_no+ "\"," +
"\"refund_reason\":\"正常退款\"" +
" }");
AlipayTradeRefundResponse response;
response = ute(request);
if (response.isSuccess()) {
System.out.println("⽀付宝退款成功");
} else {
returnStr = SubMsg();//失败会返回错误信息
}
} catch (Exception e) {折纸花 康乃馨
e.printStackTrace();
}
return returnStr;
}
public static void main(String str[]){
String strq=  alipayRefundRequest("109adb5aa64878314ab184e44f4c6f07","",0.1D);
System.out.println(strq);
}
}
公共参数说明:
这些参数去⽀付宝商户平台查看
app_id : ⽀付宝商户平台    账号管理  中查看
your private_key :密钥需要将⽣产的公钥上传⾄⽀付宝、密钥留在代码中使⽤
alipay_public_key :⽀付宝公钥
RSA2:签名算法类型之前⽤RSA 现在⽤RSA2 弄错了会报签名不匹配错误
其他参数不⽤修改大陆破案电视剧
参数查看位置
RSA2 应⽤公钥是可以修改的,需要⽤到验证码。公钥、私钥⽣成⼯具官⽹上⾯有
下⾯开始调试
我在调试出现的错误:第⼀个就是签名不匹配问题,原因签名算法类型⽤的是RSA 修个成RSA2后没问题第⼆个错误:参数⽆效最有可能是你的私钥弄错,要么就是你的请求参数格式弄错
运⾏后查看⽀付宝交易退款结果:
//===========================下⾯是AlipayConfig⼯具类===========
public class AlipayConfig {
//↓↓↓↓↓↓↓↓↓↓请在这⾥配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
// 合作⾝份者ID,以2088开头由16位纯数字组成的字符串
public static String partner = "2088521599027790";
public static String seller_email = "hzqishi@163";
// 商户的私钥
public static String private_key = "";
//商户的私钥退款使⽤
public static  String private_refund_key="";
// ⽀付宝的公钥,⽆需修改该值
public static String ali_public_key  =
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRAFljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/P  // ⽀付宝的公钥,退款使⽤
public static  String ali_refund_key="";
// 调试⽤,创建TXT⽇志⽂件夹路径,见AlipayCore.java类中的logResult(String sWord)打印⽅法。
public static String log_path = "D:\\";
// 字符编码格式⽬前⽀持 gbk 或 utf-8
public static String input_charset = "utf-8";
// 参数返回格式,只⽀持json
public static String format = "json";
// 签名⽅式不需修改
public static String sign_type = "RSA";
public static String request_url = "openapi.alipay/gateway.do";
public static String app_id ="";
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。