說明:
本帖是利用支付寶沙箱測試電腦網站支付接口
測試環境:Apache2.4.23 +php 5.6.25
沙箱環境測試正式環境請修改網關爲下方值
複製代碼php
1
|
正式環境網關:https:
//openapi.alipay.com/gateway.do
|
注意事項:
1.目前僅支持帳戶餘額渠道付款。
2.轉帳額度
1)單日轉出累計額度爲100萬元。
2)轉帳給我的支付寶帳戶,單筆最高5萬元;轉帳給企業支付寶帳戶,單筆最高10萬元。
特殊邏輯注意點:
1)若是商戶重複請求轉帳,支付寶會冪等返回成功結果,商戶必須對重複轉帳的業務作好冪等處理;若是不判斷,
存在潛在的風險,商戶自行承擔所以而產生的全部損失。
2)若是調用alipay.fund.trans.toaccount.transfer掉單時,或返回結果code=20000時,或返回結果code=40004,
sub_code= SYSTEM_ERROR時,請調用alipay.fund.trans.order.query發起查詢,若是未查詢到結果,
請保持原請求不變再次請求alipay.fund.trans.toaccount.transfer接口。
3)商戶處理轉帳結果時,對於錯誤碼的處理,只能使用sub_code做爲後續處理的判斷依據,
不可以使用sub_msg做爲後續處理的判斷依據。
參數解讀:
1.amount 轉帳金額,只支持2位小數,小數點前最大支持13位,金額必須大於等於0.1元。
2.payer_show_name付款方姓名(最長支持100個英文/50個漢字)。顯示在收款方的帳單詳情頁。若是該字段不傳
則默認顯示付款方的支付寶認證姓名或單位名稱。
3.payee_real_name收款方真實姓名(最長支持100個英文/50個漢字),若是本參數不爲空,則會校驗該帳戶在支付寶
登記的實名是否與收款方真實姓名一致。
4.remark轉帳備註(支持200個英文/100個漢字)。當付款方爲企業帳戶,且轉帳金額達到(大於等於)50000元,
remark不能爲空。收款方可見,會展現在收款用戶的收支詳情中。
測試流程(聲明:demo僅作參考使用):
1.下載官方【服務端sdk】放到項目中,注意:官方sdk php環境要求php5.5以上
2.看下方代碼
1)收款方帳戶類型爲:ALIPAY_LOGONID
複製代碼json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<?php
require_once
'AopSdk.php'
;
$aop
=
new
AopClient ();
$aop
->appId =
'填寫您的沙箱appid'
;
$aop
->rsaPrivateKey =
'填寫您的私鑰'
;
$aop
->alipayrsaPublicKey=
'填寫您的支付寶公鑰'
;
$aop
->apiVersion =
'1.0'
;
$aop
->signType =
'RSA2'
;
$aop
->postCharset=
'utf-8'
;
$aop
->format=
'json'
;
$date
=
date
(
"YmdHis"
);
$arr
=range(1000,9999);
shuffle(
$arr
);
$request
=
new
AlipayFundTransToaccountTransferRequest ();
//收款方帳戶類型爲:ALIPAY_LOGONID:支付寶登陸號,支持郵箱和手機號格式。
$request
->setBizContent(
"{"
.
"\"out_biz_no\":\""
.
$date
.
$arr
[0].
"\","
.
"\"payee_type\":\"ALIPAY_LOGONID\","
.
"\"payee_account\":\"請填寫您轉帳的帳號\","
.
"\"amount\":\"0.1\","
.
"\"remark\":\"單筆轉帳測試\""
.
"}"
);
$result
=
$aop
->execute (
$request
);
var_dump(
$result
);
|
2)收款方帳戶類型爲:ALIPAY_USERID
複製代碼api
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<?php
require_once
'AopSdk.php'
;
$aop
=
new
AopClient ();
$aop
->appId =
'填寫您的appid'
;
$aop
->rsaPrivateKey =
'填寫您的私鑰'
;
$aop
->alipayrsaPublicKey=
'填寫您的支付寶公鑰'
;
$aop
->apiVersion =
'1.0'
;
$aop
->signType =
'RSA2'
;
$aop
->postCharset=
'utf-8'
;
$aop
->format=
'json'
;
$date
=
date
(
"YmdHis"
);
$arr
=range(1000,9999);
shuffle(
$arr
);
$request
=
new
AlipayFundTransToaccountTransferRequest ();
// 收款方帳戶類型爲:ALIPAY_USERID:支付寶帳號對應的支付寶惟一用戶號。以2088開頭的16位純數字組成。
$request
->setBizContent(
"{"
.
"\"out_biz_no\":\""
.
$date
.
$arr
[0].
"\","
.
"\"payee_type\":\"ALIPAY_USERID\","
.
"\"payee_account\":\"填寫您要轉帳的2088\","
.
"\"amount\":\"0.1\","
.
"\"remark\":\"單筆轉帳測試\""
.
"}"
);
$result
=
$aop
->execute (
$request
);
var_dump(
$result
);
|
3)alipay.fund.trans.order.query(查詢轉帳訂單接口)
說明:商戶可經過該接口查詢轉帳訂單的狀態、支付時間等相關信息,主要應用於B2C轉帳訂單查詢的場景
複製代碼app
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?php
/**
* 2017-08-01
* by 我是個導演
* 歡迎訪問支付寶論壇:https://openclub.alipay.com/index.php
*/
require_once
'AopSdk.php'
;
$aop
=
new
AopClient ();
$aop
->appId =
'填寫您的appid'
;
$aop
->rsaPrivateKey =
'填寫您的私鑰'
;
$aop
->alipayrsaPublicKey=
'填寫您的支付寶公鑰'
;
$aop
->apiVersion =
'1.0'
;
$aop
->signType =
'RSA2'
;
$aop
->postCharset=
'utf-8'
;
$aop
->format=
'json'
;
$request
=
new
AlipayFundTransOrderQueryRequest ();
//商戶轉帳惟一訂單號: 和支付寶轉帳單據號不能同時爲空。當和支付寶轉帳單據號同時提供時,將用支付寶轉帳單據號進行查詢,忽略本參數。
$request
->setBizContent(
"{"
.
"\"out_biz_no\":\"填寫商戶轉帳惟一訂單號\","
.
"\"order_id\":\"填寫支付寶轉帳單據號\""
.
"}"
);
$result
=
$aop
->execute (
$request
);
var_dump(
$result
);
|