说明:
本帖是利用支付宝沙箱测试电脑网站支付接口
测试环境: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
);
|