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

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

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

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

支付宝转账最新接口(证书版)的封装_第1张图片

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张图片

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

你可能感兴趣的:(支付宝转账最新接口(证书版)的封装)