龙空技术网

支付宝转账最新接口(证书版)的封装

河通贤胜 571

前言:

而今我们对“支付宝接口收费标准”大致比较关切,看官们都想要了解一些“支付宝接口收费标准”的相关资讯。那么小编同时在网络上网罗了一些对于“支付宝接口收费标准””的相关文章,希望同学们能喜欢,小伙伴们快快来学习一下吧!

支付宝转账最新接口(证书版)的封装

一,利用支付宝SDK做了精简demo实例

1,所需Jar包有如下共5个:

2,配置文件alipay.properties

#支付宝配置 alipay config

#应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号

alipayconfig.app_id=

#商户私钥,您的PKCS8格式RDA2私钥

alipayconfig.merchant_private_key=

#应用公钥证书aliAppCertPublicKey=绝对路径\\config\\appCertPublicKey_appid.crt

#支付宝公钥证书

aliCertPublicKey=绝对路径\\config\\alipayCertPublicKey_RSA2.crt

#支付宝根证书aliRootCert=绝对路径\\config\\alipayRootCert.crt

#服务器异步通知页面地址 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问

alipayconfig.notify_url=

#页面跳转同步通知地址

alipayconfig.return_url=

二,其他web项目的集成步骤与调用

1,导入如下所需的5个Jar包到lib目录下

2,更改配置文件alipay.properties中的参数值为自己的

#支付宝配置 alipay config

#应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号

alipayconfig.app_id=

#商户私钥,您的PKCS8格式RDA2私钥

alipayconfig.merchant_private_key=

#应用公钥证书aliAppCertPublicKey=绝对路径\\config\\appCertPublicKey_appid.crt

#支付宝公钥证书

aliCertPublicKey=绝对路径\\config\\alipayCertPublicKey_RSA2.crt

#支付宝根证书aliRootCert=绝对路径\\config\\alipayRootCert.crt

#服务器异步通知页面地址 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问

alipayconfig.notify_url=

#页面跳转同步通知地址

alipayconfig.return_url=

3,转账方法的调用,主要是AlipayCash类

加载配置文件和调用分装后的转账接口alipay2User

//关联配置文件

private static AlipayConfig rm =newAlipayConfig();

private static String gateway=rm.gatewayUrl;//支付宝网关

private static String appid=rm.app_id;//阿里公共账户的id

private static String private_key=rm.merchant_private_key;//私钥

private static String input_charset=rm.charset;//字段类型

private static String ali_public_key=rm.alipay_public_key;//公钥

private static String app_cert_sn;//app公匙序列号

private static String alipay_root_cert_sn;//根证书序列号

private static AlipayClient alipayClient;

/**

* 支付宝向用户转账

* @param bizNo 逻辑单号

* @param amount 转账金额 "1.21"单位元

* @param identity 支付宝账号

* @param name 支付宝真实姓名

* @return

*/

public Map alipay2User(StringbizNo,Stringamount,Stringidentity, Stringname)

{

Map resultMap=newHashMap();

AliPayVo vo =newAliPayVo();

vo.setOut_biz_no(bizNo);

vo.setProduct_code("TRANS_ACCOUNT_NO_PWD");//单笔无密转账到支付宝账户.

setPayee_type("ALIPAY_LOGONID");

vo.setBiz_scene("DIRECT_TRANSFER");//单笔无密转账到支付宝/银行卡, B2C现金红包;

vo.setTrans_amount(amount);

vo.setPayee_info(getAliPayInfoVo(identity,name));

vo.setRemark("支付宝转账");

String json =newGson().toJson(vo);// 设置请求参数

AlipayFundTransUniTransferRequest alipayRequest =newAlipayFundTransUniTransferRequest();

alipayRequest.setBizContent(json);

CertAlipayRequest certAlipayRequest =newCertAlipayRequest();

certAlipayRequest.setServerUrl(gateway);

certAlipayRequest.setAppId(appid);

certAlipayRequest.setPrivateKey(private_key);

certAlipayRequest.setFormat("json");

certAlipayRequest.setCharset(input_charset);

certAlipayRequest.setSignType("RSA2");//上传csr文件后 完成配置,支付宝后台能下载3个文件 // 应用公匙证书certAlipayRequest.setCertPath(rm.aliAppCertPublicKey);// 支付宝公匙证书

certAlipayRequest.setAlipayPublicCertPath(rm.aliCertPublicKey);//支付宝 根 公匙证书

certAlipayRequest.setRootCertPath(rm.aliRootCert);

AlipayFundTransUniTransferResponse response =null;

try{alipayClient =newDefaultAlipayClient(certAlipayRequest);

response = alipayClient.certificateExecute(alipayRequest);

if("10000".equals(response.getCode())){

resultMap.put("success", "true");

resultMap.put("des", "转账成功");

System.out.println("转账成功:转给了"+identity+"-"+name+" "+amount+"元");

}else{

resultMap.put("success", "false");

resultMap.put("des", response.getSubMsg());

}

} catch (AlipayApiException e) {

e.printStackTrace();

resultMap.put("success", "false");

resultMap.put("des", "转账失败!");

System.out.println("转账失败:异常原因:"+response.getSubMsg());

}

return resultMap;

}

执行AlipayCash.alipay2User 就会实现转账功能。

应用实例:AlipayCash alipay=newAlipayCash();alipay.alipay2User(findwithdraw.getOutBizNo(),findwithdraw.getMoney().toString(),findwithdra

标签: #支付宝接口收费标准