支付宝单笔转账到支付宝个人账户接口 ( 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/

公共请求参数

支付宝单笔转帐公共请求参数.jpg

请求参数

支付宝单笔转帐请求参数.jpg

请求示例

<?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=="
}

支付宝单笔转帐成功.jpg

Fatal error: Uncaught exception 'Exception' with message 'check sign Fail! 

转帐的是使用支付宝公钥的验签,默认使用的是初始化客户端时候的公钥,需要把初始化客户端的公钥修改为支付宝的公钥。应用公钥实际没有用处。注释掉 //  $aop->alipayrsaPublicKey='请填写支付宝公钥,一行字符串';

//  $aop->alipayrsaPublicKey='请填写支付宝公钥,一行字符串';




出处:小张个人博客

网址:http://blog.023xs.cn/

您的支持是对博主最大的鼓励,感谢您的认真阅读。欢迎转载,但请保留该声明。

顶部

Copyright © 小张个人博客 All Rights Reserved 渝ICP备15006773号-1

联系方式:[email protected] | 本站文章仅供学习和参考

渝公网安备 50024102500267号