支付宝单笔转账到支付宝个人账户接口 ( PHP 版 )
发布时间:2020-07-11 编辑:小张个人博客 查看次数:12979
alipay.fund.trans.toaccount.transfer(单笔转账到支付宝账户接口)
单笔转账到支付宝账户接口是基于支付宝的资金处理能力,为了满足支付宝商家向其他支付宝账户转账的需求,针对有部分开发能力的商家,提供通过 API 接口完成支付宝账户间的转账的功能。 该接口适用行业较广,比如商家间的货款结算,商家给个人用户发放佣金等。(目前已对该接口能力做了升级,后续建议调用新接口alipay.fund.trans.uni.transfer)
注意事项:
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 不能为空。收款方可见,会展示在收款用户的收支详情中。
下载服务端SDK
https://docs.open.alipay.com/54/103419/
注:适用于 php 5.5 以上的开发环境
请求地址
正式环境:https://openapi.alipay.com/gateway.do
单笔转账到支付宝账户接口文档
https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer/
公共请求参数
请求参数
请求示例
<?php require_once "aop/AopClient.php"; require_once "aop/request/AlipayFundTransToaccountTransferRequest.php"; $aop = new AopClient (); $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do'; $aop->appId = 'your app_id'; $aop->rsaPrivateKey = '请填写开发者私钥去头去尾去回车,一行字符串'; // 转帐的是使用支付宝公钥的验签,默认使用的是初始化客户端时候的公钥,需要把初始化客户端的公钥修改为支付宝的公钥。应用公钥实际没有用处。 // $aop->alipayrsaPublicKey='请填写支付宝公钥,一行字符串'; $aop->apiVersion = '1.0'; $aop->signType = 'RSA2'; $aop->postCharset='UTF-8'; $aop->format='json'; $request = new AlipayFundTransToaccountTransferRequest (); $request->setBizContent("{" . "\"out_biz_no\":\"3142321423259\"," . "\"payee_type\":\"ALIPAY_LOGONID\"," . "\"payee_account\":\"[email protected]\"," . "\"payee_real_name\":\"小张\",". "\"amount\":\"0.2\"," . "\"remark\":\"单笔转账测试\"" . "}"); $result = $aop->execute ($request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; if(!empty($resultCode)&&$resultCode == 10000){ echo "转账成功!"; } else { echo "转账失败!"; }
响应示例
{ "alipay_fund_trans_toaccount_transfer_response": { "code": "10000", "msg": "Success", "out_biz_no": "3142321423259", "order_id": "20180427110070001502210085187233", "pay_date": "2013-01-01 08:08:08" }, "sign": "N5DHM+s6dWL9ys3d *********** erFaTbIe4w==" }
Fatal error: Uncaught exception 'Exception' with message 'check sign Fail!
转帐的是使用支付宝公钥的验签,默认使用的是初始化客户端时候的公钥,需要把初始化客户端的公钥修改为支付宝的公钥。应用公钥实际没有用处。注释掉 // $aop->alipayrsaPublicKey='请填写支付宝公钥,一行字符串';
// $aop->alipayrsaPublicKey='请填写支付宝公钥,一行字符串';
Copyright © 小张个人博客 All Rights Reserved 渝ICP备15006773号-1
联系方式:[email protected] | 本站文章仅供学习和参考