alipay.fund.trans.uni.transfer(单笔转账接口)
使用SDK 支付宝通用SDK-V2版**
下载地址:https://opendocs.alipay.com/common/02n6z6
代码
<?php
require_once '../aop/AopCertClient.php';
require_once '../aop/request/AlipayFundTransUniTransferRequest.php';
$aop = new AopCertClient();
$appCertPath = "cert/appCertPublicKey_2018110962096589.crt"; // 应用公钥证书路径------必填
$alipayCertPath = "cert/alipayCertPublicKey_RSA2.crt"; // 支付宝公钥证书路径------必填
$rootCertPath = "cert/alipayRootCert.crt"; // 根证书路径------必填
$aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
$aop->appId = "";//应用ID--------------必填
$aop->rsaPrivateKey = '';//私钥--------------必填
$aop->format = "json";
$aop->charset = "GBK";
$aop->signType = "RSA2";
// 调用getPublicKey从支付宝公钥证书中提取公钥
$aop->alipayrsaPublicKey = $aop->getPublicKey($alipayCertPath);
// 是否校验自动下载的支付宝公钥证书,如果开启校验要保证支付宝根证书在有效期内
$aop->isCheckAlipayPublicCert = true;
// 调用getCertSN获取证书序列号
$aop->appCertSN = $aop->getCertSN($appCertPath);
// 调用getRootCertSN获取支付宝根证书序列号
$aop->alipayRootCertSN = $aop->getRootCertSN($rootCertPath);
$request = new AlipayFundTransUniTransferRequest();
$bizcontent = [
'out_biz_no' => 'test1111111112', // 订单号------必填
'trans_amount' => '0.10', // 提现实际金额------必填
'product_code' => "TRANS_ACCOUNT_NO_PWD", //转账为:TRANS_ACCOUNT_NO_PWD
'biz_scene' => 'DIRECT_TRANSFER', //单笔无密转账到支付宝:DIRECT_TRANSFER
'payee_info' => [
'identity' => '1550016691@qq.com', // 收款人帐户------必填
'identity_type' => 'ALIPAY_LOGON_ID', //支付宝登录id:ALIPAY_LOGON_ID------必填
'name' => '刘桥敏', // 收款人姓名------必填
],
'remark' => "单笔转账到支付宝账户接口测试", // 转帐备注
];
$request->setBizContent(json_encode($bizcontent));
$result = $aop->execute($request);
$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
$resultCode = $result->$responseNode->code;
if (!empty($resultCode) && $resultCode == 10000) {
echo "转账请求成功";
} else {
echo "转账请求失败";
}
// 打印完整的响应结果
echo json_encode($result);
代码的作用:
这段代码实现了调用支付宝的单笔转账接口功能。让我们逐行解释代码的作用:
-
首先,代码引入了必要的文件,其中包括
AopCertClient.php
和AlipayFundTransUniTransferRequest.php
,这些文件提供了与支付宝接口进行通信所需的类和方法。 -
创建了一个
AopCertClient
的实例,用于与支付宝进行通信。 -
设置了证书路径和其他参数,包括应用公钥证书路径、支付宝公钥证书路径、根证书路径等。
-
设置了支付宝网关 URL、应用 ID、私钥、数据格式、字符集和签名类型等。
-
通过调用
getPublicKey
方法从支付宝公钥证书中提取公钥,并将其设置为alipayrsaPublicKey
。 -
设置是否校验自动下载的支付宝公钥证书,并调用
getCertSN
和getRootCertSN
方法获取应用公钥证书和支付宝根证书的序列号。 -
创建了一个
AlipayFundTransUniTransferRequest
的实例,用于构建转账请求的参数。 -
设置了转账请求的参数,包括订单号、提现金额、转账方式、转账场景、收款人信息和转账备注等。
-
调用
setBizContent
方法将转账请求的参数设置到请求对象中。 -
调用
execute
方法发送转账请求,并将返回的结果保存到result
变量中。 -
通过解析返回结果,获取响应节点名称和响应码。
-
根据响应码判断转账请求是否成功,并输出相应的提示信息。
-
最后,使用
json_encode
方法将完整的响应结果以 JSON 格式进行输出。
请注意,在代码中的 rsaPrivateKey
部分需要填写私钥,这是必填项,用于对请求进行签名和加密操作。此外,还需要确保证书路径和其他参数的设置正确,并根据实际情况进行相应的修改。