支付寶轉(zhuǎn)賬最新接口(證書版)的封裝
#支付寶配置 alipay config?
#應(yīng)用ID,您的APPID滥嘴,收款賬號(hào)既是您的APPID對(duì)應(yīng)支付寶賬號(hào)
alipayconfig.app_id=
#商戶私鑰墓毒,您的PKCS8格式RDA2私鑰
alipayconfig.merchant_private_key=
#應(yīng)用公鑰證書aliAppCertPublicKey=絕對(duì)路徑\\config\\appCertPublicKey_appid.crt
#支付寶公鑰證書
aliCertPublicKey=絕對(duì)路徑\\config\\alipayCertPublicKey_RSA2.crt
#支付寶根證書aliRootCert=絕對(duì)路徑\\config\\alipayRootCert.crt
#服務(wù)器異步通知頁面地址? ? ? 需http://格式的完整路徑吓揪,不能加?id=123這類自定義參數(shù),必須外網(wǎng)可以正常訪問
alipayconfig.notify_url=
#頁面跳轉(zhuǎn)同步通知地址
alipayconfig.return_url=
二所计,其他web項(xiàng)目的集成步驟與調(diào)用
1柠辞,導(dǎo)入如下所需的5個(gè)Jar包到lib目錄下
2,更改配置文件alipay.properties中的參數(shù)值為自己的
#支付寶配置 alipay config?
#應(yīng)用ID,您的APPID主胧,收款賬號(hào)既是您的APPID對(duì)應(yīng)支付寶賬號(hào)
alipayconfig.app_id=
#商戶私鑰叭首,您的PKCS8格式RDA2私鑰
alipayconfig.merchant_private_key=
#應(yīng)用公鑰證書aliAppCertPublicKey=絕對(duì)路徑\\config\\appCertPublicKey_appid.crt
#支付寶公鑰證書
aliCertPublicKey=絕對(duì)路徑\\config\\alipayCertPublicKey_RSA2.crt
#支付寶根證書aliRootCert=絕對(duì)路徑\\config\\alipayRootCert.crt
#服務(wù)器異步通知頁面地址? ? ? 需http://格式的完整路徑,不能加?id=123這類自定義參數(shù)踪栋,必須外網(wǎng)可以正常訪問
alipayconfig.notify_url=
#頁面跳轉(zhuǎn)同步通知地址
alipayconfig.return_url=
3焙格,轉(zhuǎn)賬方法的調(diào)用,主要是AlipayCash類
加載配置文件和調(diào)用分裝后的轉(zhuǎn)賬接口alipay2User
//關(guān)聯(lián)配置文件
private? ?static AlipayConfig rm =newAlipayConfig();
private? ?static String gateway=rm.gatewayUrl;//支付寶網(wǎng)關(guān)
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公匙序列號(hào)?
private? ?static String alipay_root_cert_sn;//根證書序列號(hào)
private? ?static AlipayClient alipayClient;
/**
* 支付寶向用戶轉(zhuǎn)賬
* @param bizNo? 邏輯單號(hào)
* @param amount 轉(zhuǎn)賬金額 "1.21"單位元
* @param identity 支付寶賬號(hào)
* @param name 支付寶真實(shí)姓名
* @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");//單筆無密轉(zhuǎn)賬到支付寶賬戶.
setPayee_type("ALIPAY_LOGONID");
vo.setBiz_scene("DIRECT_TRANSFER");//單筆無密轉(zhuǎn)賬到支付寶/銀行卡, B2C現(xiàn)金紅包;
vo.setTrans_amount(amount);? ? ? ??
vo.setPayee_info(getAliPayInfoVo(identity,name));? ? ? ??
vo.setRemark("支付寶轉(zhuǎn)賬");? ? ? ??
String json =newGson().toJson(vo);// 設(shè)置請求參數(shù)
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文件后 完成配置,支付寶后臺(tái)能下載3個(gè)文件 // 應(yīng)用公匙證書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", "轉(zhuǎn)賬成功");
System.out.println("轉(zhuǎn)賬成功:轉(zhuǎn)給了"+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", "轉(zhuǎn)賬失斠亩肌眷唉!");
? ? ? ? ? ? ? ? System.out.println("轉(zhuǎn)賬失敗:異常原因:"+response.getSubMsg());
}
return resultMap;
}
執(zhí)行AlipayCash.alipay2User 就會(huì)實(shí)現(xiàn)轉(zhuǎn)賬功能囤官。
應(yīng)用實(shí)例:AlipayCash alipay=newAlipayCash();alipay.alipay2User(findwithdraw.getOutBizNo(),findwithdraw.getMoney().toString(),findwithdra