PHP支付宝--转账到支付宝账户

官方参考文档:

https://opendocs.alipay.com/open/62987723_alipay.fund.trans.uni.transfer?scene=ca56bca529e64125a2786703c6192d41\&pathHash=66064890​

可以使用默认应用,也可以自建新应用,此处以默认应用来讲解【默认应用默认支持该API】

一:给应用配置加签方式

按照下面的提示,在本地电脑上安装密钥工具并生成密钥文件。

二:下载SDK

https://opendocs.alipay.com/open/54/103419/

把代码放在服务器项目目录中【sdk/ali_transfer】

目录请根据自己实际项目需要自定义即可。

使用命令行将压缩包解压 unzip 压缩包名称

最后调整为如下格式:

在官方文档页面,找到集成工具

选择在线调试

注意:此API在线调试工具里的代码是沙箱环境下的代码,不能作为正常业务逻辑操作代码。

复制右侧的php代码到自己的项目中,并把代码加以改造。

php 复制代码
    require_once ROOT_PATH.'sdk/ali_transfer/v2/aop/AopClient.php';
    require_once ROOT_PATH.'sdk/ali_transfer/v2/aop/AopCertClient.php';
    require_once ROOT_PATH.'sdk/ali_transfer/v2/aop/AopCertification.php';
    require_once ROOT_PATH.'sdk/ali_transfer/v2/aop/AlipayConfig.php';
    require_once ROOT_PATH.'sdk/ali_transfer/v2/aop/request/AlipayFundTransUniTransferRequest.php';
        
    $privateKey = "MIIEvQIBADANBgkqhki*********************EFAgiCdrM61I=";//支付宝密钥工具生成的应用私钥
    $alipayConfig = new \AlipayConfig();
    $alipayConfig->setPrivateKey($privateKey);
    $alipayConfig->setServerUrl("https://openapi.alipay.com/gateway.do");
    $alipayConfig->setAppId("2021********2401"); //支付宝后台应用appID
    $alipayConfig->setCharset("UTF-8");
    $alipayConfig->setSignType("RSA2");
    $alipayConfig->setEncryptKey(""); //为空即可
    $alipayConfig->setFormat("json");
    $appCertPublicKey = file_get_contents(ROOT_PATH.'addons/epay/certs/appCertPublicKey.crt'); //证书路径自行修改
    $alipayConfig->setAppCertContent($appCertPublicKey); //应用公钥
    $alipayCertPublicKey = file_get_contents(ROOT_PATH.'addons/epay/certs/alipayCertPublicKey.crt');//证书路径自行修改
    $alipayConfig->setAlipayPublicCertContent($alipayCertPublicKey); //支付宝公钥证书
    $alipayRootCert = file_get_contents(ROOT_PATH.'addons/epay/certs/alipayRootCert.crt');//证书路径自行修改
    $alipayConfig->setRootCertContent($alipayRootCert); //支付宝根证书
    $alipayClient = new \AopCertClient($alipayConfig);
    $alipayClient->isCheckAlipayPublicCert = true;
    $request = new \AlipayFundTransUniTransferRequest();

    $out_biz_no = "ybjz".date('YmdHis',time()).rand(10000000,99999999);

    $data=[
        'out_biz_no'=>$out_biz_no,
        'trans_amount'=>0.1, //转账金额(单位为元)
        'biz_scene'=>'DIRECT_TRANSFER',
        'product_code'=>'TRANS_ACCOUNT_NO_PWD',
        'order_title'=>'提现',
        'payee_info'=>[
            'identity'=>'138********', //支付宝手机号
            'identity_type'=>'ALIPAY_LOGON_ID',
            'name'=>'张某某', //支付宝姓名
        ]

    ];

    $request->setBizContent(json_encode($data));
    $responseResult = $alipayClient->execute($request);
    $responseApiName = str_replace(".","_",$request->getApiMethodName())."_response";
    $response = $responseResult->$responseApiName;

    if(!empty($response->code)&&$response->code==10000){
        //业务处理逻辑,如记录订单号,改变订单状态等
        //**********
        echo("调用成功");
    }
    else{
        echo("调用失败");
    }

调用成功后返回的信息如下:

相关推荐
阿巴斯甜12 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker12 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq952713 小时前
Andorid Google 登录接入文档
android
黄林晴14 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android