alipay 证书 java_支付宝转账-提取根证书失败 AlipayRootCert Is Invalid

这篇博客介绍了在使用支付宝API进行单笔转账时遇到的'提取根证书失败 AlipayRootCert Is Invalid'错误。通过分析Java代码,展示了如何设置和加载支付宝的根证书路径,以及在转账请求中配置必要的参数。遇到此类问题的开发者可以参考此解决方案。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

/**

* 支付宝单笔转账

* @param payee_account 收款方账户(支付宝账户)

* @param payee_name 收款方真实姓名

* @param amount 金额(单位:元)

* @param memo 备注

* @param orderNum 订单号

*/

public static Integer ailPayTransfer(String payee_account,String payee_name,String amount,String orderNum,String memo) {

try {

//获取根目录

String filePath=AlipayUtil.class.getResource("/").getPath();

System.out.println(filePath);

CertAlipayRequest certAlipayRequest = new CertAlipayRequest();

certAlipayRequest.setServerUrl(URL);

certAlipayRequest.setAppId(APP_ID);

certAlipayRequest.setPrivateKey(APP_PRIVATE_KEY);

certAlipayRequest.setFormat("json");

certAlipayRequest.setCharset(CHARSET);

certAlipayRequest.setSignType(SIGN_TYPE);

certAlipayRequest.setCertPath(filePath+"appCertPublicKey_2019032963724751.crt");

certAlipayRequest.setAlipayPublicCertPath(filePath+"alipayCertPublicKey_RSA2.crt");

certAlipayRequest.setRootCertPath(filePath+"alipayRootCert.crt");

DefaultAlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest);

AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();

request.setBizContent("{" +

"\"out_biz_no\":\""+orderNum+"\"," +//商户端的唯一订单号,对于同一笔转账请求,商户需保证该订单号唯一。

"\"trans_amount\":"+amount+"," +//订单总金额,单位为元,精确到小数点后两位,

"\"product_code\":\"TRANS_ACCOUNT_NO_PWD\"," +//收发现金红包固定为:STD_RED_PACKET; 单笔无密转账到支付宝账户固定为:TRANS_ACCOUNT_NO_PWD; 单笔无密转账到银行卡固定为:TRANS_BANKCARD_NO_PWD

"\"biz_scene\":\"DIRECT_TRANSFER\"," + //描述特定的业务场景,可传的参数如下: PERSONAL_COLLECTION:C2C现金红包-领红包; DIRECT_TRANSFER:B2C现金红包、单笔无密转账到支付宝/银行卡

"\"order_title\":\"转账业务的标题\"," +//转账业务的标题,用于在支付宝用户的账单里显示

//"\"original_order_id\":\"20190620110075000006640000063056\"," +//原支付宝业务单号。C2C现金红包-红包领取时,传红包支付时返回的支付宝单号;B2C现金红包、单笔无密转账到支付宝/银行卡不需要该参数。

"\"payee_info\":{" +//收款方信息

"\"identity\":\""+payee_account+"\"," +//参与方的唯一标识

"\"identity_type\":\""+PAYEE_TYPE+"\"," +//参与方的标识类型,目前支持如下类型: 1、ALIPAY_USER_ID 支付宝的会员ID 2、ALIPAY_LOGON_ID:支付宝登录号,支持邮箱和手机号格式

"\"name\":\""+payee_name+"\"" +//参与方真实姓名,如果非空,将校验收款支付宝账号姓名一致性。当identity_type=ALIPAY_LOGON_ID时,本字段必填。若传入该属性,则在支付宝回单中将会显示这个属性

" }," +

"\"remark\":\""+memo+"\"" + //业务备注

" }");

AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);

if(response.isSuccess()){

System.out.println("调用成功");

return 1;

} else {

System.out.println("调用失败");

}

} catch (AlipayApiException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("出错");

}

return 0;

}

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值