当前位置: 首页 > news >正文

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代码到自己的项目中,并把代码加以改造。

    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("调用失败");
    }

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

相关文章:

  • 计算机专业知识【探秘 C/S 工作模式:原理、应用与网络协议案例】
  • NBT群落物种级丰度鉴定新方法sylph
  • 【C语言】有序数组的平方
  • 《DeepSeek 一站式工作生活 AI 助手》
  • 外包干了3年,技术退步太明显了。。。。。
  • Rust 语言入门(一):打印与格式化输出
  • Transformer 模型介绍(四)——编码器 Encoder 和解码器 Decoder
  • DeepSeek应用-一秒对书本要点分析并创建思维脑图
  • Java并发编程——AQS原理解析
  • MobaXterm中文版安装使用教程-附安装包
  • 使用 Spring Boot 和 Canal 实现 MySQL 数据库同步
  • 1997-2019年各省进出口总额数据
  • Android 中使用 FFmpeg 进行音视频处理
  • Spring Boot三:Springboot自动装配原理
  • Java中Map循环安全的删除数据的4中方法
  • Qt5开发入门指南:从零开始掌握跨平台开发
  • ZYNQ TCP Server PS端千兆网口速率低问题,要修改BSP中LWIP配置参数
  • 英语---基础词汇库
  • Nginx 负载均衡实战:构建高效稳定的 Web 服务
  • 【C#零基础从入门到精通】(二十六)——C#三大特征-多态详解