很久都沒有寫部落格了,一來是感覺工作中沒有接觸什麼新東西,二來也是自己變懶了,業餘時間都耗費在了休閒上面,主動學習的次數越來越少了。今天專案裡需要對接到支付寶轉賬給個人賬戶,正好以前沒有弄過,把對接步驟在此總結一下。
支付寶對接官方文件 :
首先需要在支付寶開放平台中建立好應用,整理對接時需要的引數。
2.私鑰
3.應用公鑰證書
4.支付寶公鑰證書
5.支付寶根證書
2.把三個證書放入到專案中
3.封裝配置引數,其中支付寶閘道器是固定的,正式環境是 https://
,沙箱環境是 https://
//私鑰
@value("$")
private
string privatekey;
//引數返回格式,只支援 json(固定)。
public
static string format = "json";
//商戶生成簽名字串所使用的簽名演算法型別,目前支援 rsa2 和 rsa,推薦使用 rsa2。
public
static string sign_type = "rsa2";
//字元編碼格式
public
static string charset = "utf-8";
//轉賬成功狀態碼
public
static string success_code = "10000";
//收款方標識型別 alipay_user_id:支付寶會員的使用者 id,可通過 獲取會員資訊 能力獲取。alipay_logon_id:支付寶登入號,支援郵箱和手機號格式。
public
static string identity_type = "alipay_logonid";
//應用證書路徑
public
//公鑰證書路徑
public
static string public_cert_path = classloader.getsystemresource("alipay/alipaycertpublickey_rsa2.crt").getpath();
//支付寶根證書路徑
public
static string root_cert_path = classloader.getsystemresource("alipay/alipayrootcert.crt").getpath();
4. 傳送轉賬請求
/**至此完成 ,如果有哪說得不對的地方,歡迎指出。* 功能描述: 支付寶轉賬介面-公鑰證書模式
* *
@param
alipayconfig 支付寶配置
* @param
orderno 系統訂單號
* @param
account 收款方帳號
* @param
username 收款方姓名
* @param
amount 轉賬金額
* @建立人: tang
* @return
: boolean
**/public
static
boolean transfer(alipayconfig alipayconfig, string orderno, string account, string username, string amount) throws
alipayapiexception ", orderno);
//構造client
certalipayrequest certalipayrequest = new
certalipayrequest();
//設定閘道器位址
certalipayrequest.setserverurl(alipayconfig.getserverurl());
//設定應用id
//設定應用私鑰
certalipayrequest.setprivatekey(alipayconfig.getprivatekey());
//設定請求格式,固定值json
certalipayrequest.setformat(alipayconfig.format);
//設定字符集
certalipayrequest.setcharset(alipayconfig.charset);
//設定簽名型別
certalipayrequest.setsigntype(alipayconfig.sign_type);
//設定應用公鑰證書路徑
//設定支付寶公鑰證書路徑
certalipayrequest.setalipaypubliccertpath(alipayconfig.public_cert_path);
//設定支付寶根證書路徑
certalipayrequest.setrootcertpath(alipayconfig.root_cert_path);
//構造client
alipayclient alipayclient = new
defaultalipayclient(certalipayrequest);
alipayfundtranstoaccounttransferrequest request = new
alipayfundtranstoaccounttransferrequest();
alipayfundtranstoaccounttransfermodel transfermodel = new
alipayfundtranstoaccounttransfermodel();
//自身系統訂單號,
transfermodel.setoutbizno(orderno);
transfermodel.setpayeetype(alipayconfig.identity_type);
transfermodel.setpayeeaccount(account);
transfermodel.setamount(amount);
transfermodel.setpayeerealname(username);
transfermodel.setremark("提款");
request.setbizmodel(transfermodel);
log.info("支付寶轉賬請求引數 = {}", jsonobject.tojson(transfermodel));
try", jsonobject.tojson(response));
return
true
; }
else
", jsonobject.tojson(response));
return
false
; }
} catch
(alipayapiexception e) ", e.getmessage());
return
false
; }
}
支付寶證書模式(轉賬給其他支付寶)
因為支付寶的加密方式要求資金類必須用證書方式加密,所以。1.去生成crt證書 2.開始開發 初始化 證書模式 vendor alipay.aop.aopcertclient 引入sdk aop new aopcertclient alipaycertpath 支付寶公鑰證書路徑 要確保證書檔案可讀 ...
支付寶獲取私鑰和公鑰
這個時候要開啟檔名為 支付寶錢包支付介面開發包2.0標準版的檔案。開啟之後有乙個demo 檔案。裡面會有三個檔案 夾 第乙個openssl 第二個服務端demo,第三個客戶端demo.這個時候,我們需要關心的是openssl 檔案與客戶端 demo 的檔案。在第三個demo檔案中有ios 版與and...
支付寶開發轉賬介面
提現功能,需要呼叫支付寶的單筆轉賬介面。支付寶文件上邊一開始寫的是需要使用公鑰證書去請求,然而我的程式一開始寫的是使用公鑰金鑰去請求的。需要接入的話就必須修改原先的請求方式改成證書請求,修改方式會影響整個程式的支付寶請求環節。最後支付寶技術客服建議讓我去建立乙個新的應用來使用這個介面,於是終於可以開...