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

news2025/2/21 16:45:01

官方参考文档:

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2302019.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

推荐一款AI大模型托管平台-OpenWebUI

推荐一款AI大模型托管平台-OpenWebUI 1. OpenWebUI 1. OpenWebUI什么? 官网地址:https://openwebui.com/ GitHub地址: https://github.com/open-webui/open-webui Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台,旨在完全离…

代码随想录D50-51 图论 Python

理论基础 理论基础部分依然沿用代码随想录教程中的介绍: 图的种类 度 连通性 连通性用于表示图中节点的连通情况。 如果有节点不能到达其他节点,则为非连通图,想象将多个水分子表示为图,不考虑非键作用,这张图就不是…

Mac M3/M4 本地部署Deepseek并集成vscode

Mac 部署 使用傻瓜集成平台ollama,ollama平台依赖于docker,Mac的M3/M4 因doesn’t have VT-X/AMD-v enabled 所以VB,VM无法使用,导致docker无法启动,需要使用docker的替代品podman, 它完全兼容docker brew install p…

TikTok账户安全指南:如何取消两步验证?

TikTok账户安全指南:如何取消两步验证? 在这个数字化的时代,保护我们的在线账户安全变得尤为重要。TikTok,作为全球流行的社交媒体平台,其账户安全更是不容忽视。两步验证作为一种增强账户安全性的措施,虽…

【C++复习专题】—— 类和对象,包含类的引入、访问限定符、类的6个默认成员函数等

1.类的定义 class classname {//类体:由成员函数和成员变量组成 }; class为定义类的关键字,classname为类的名字,{}中为类的主体。 类体中的内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方…

Spring--BeanDefinition的用法

原文网址:Spring--BeanDefinition的用法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍BeanDefinition的用法。 BeanDefinition是Bean的信息,用于生成Bean。 示例:手动注册Bean 待填充 BeanDefinition的作用 get 下图是通过beanDefinitio…

关于C#的一些基础知识点汇总

1.C#结构体可以继承接口吗?会不会产生GC? 在 C# 中,结构体不能继承类,但可以实现接口。 代码: interface IMyInterface {void MyMethod(); }struct MyStruct : IMyInterface {public void MyMethod(){Console.Write…

一文讲解Redis为什么读写性能高以及I/O复用相关知识点

Redis为什么读写性能高呢? Redis 的速度⾮常快,单机的 Redis 就可以⽀撑每秒十几万的并发,性能是 MySQL 的⼏⼗倍。原因主要有⼏点: ①、基于内存的数据存储,Redis 将数据存储在内存当中,使得数据的读写操…

Hadoop-HA(高可用)机制

首先:在每个NAMENODE上都会有一个zkfc(zookeeper failover colltroller) ,负责这两个的状态管理。哪个是(active和standby)然后写入zk集群里面。同时监控自己所在的机器是否正常。一旦active上zkfc的发现异…

51单片机-按键

1、独立按键 1.1、按键介绍 轻触开关是一种电子开关,使用时,轻轻按开关按钮就可使开关接通,当松开手时,开关断开。 1.2、独立按键原理 按键在闭合和断开时,触点会存在抖动现象。P2\P3\P1都是准双向IO口,…

深度学习的力量:精准肿瘤检测从此不再遥远

目录 引言 一、医学图像分析的挑战与深度学习的优势 1.1 医学图像分析的挑战 1.2 深度学习的优势 二、肿瘤检测的深度学习模型设计 2.1 卷积神经网络(CNN)的基本原理 2.2 网络架构设计 2.3 模型训练 三、肿瘤检测中的挑战与解决方案 3.1 数据不…

初尝git自结命令大全与需要理解的地方记录

常用命令 git init–初始化工作区touch 文件全称–在工作区创建文档rm 文件全称 --删除文档notepad 文件全称–在工作区打开文档cat 文件全称–在显示框显示文档的东西git status --显示工作区的文件冲突的文件 (git add 文件全称或者.) —将工作区文件…

LangChain 技术入门指南:探索语言模型的无限可能

在当今的技术领域,LangChain 正逐渐崭露头角,成为开发语言模型应用的强大工具。如果你渴望深入了解并掌握这一技术,那么就跟随本文一起开启 LangChain 的入门之旅吧! (后续将持续输出关于LangChain的技术文章,有兴趣的同学可以关注…

Pycharm+CodeGPT+Ollama+Deepseek

首先,体验截图: 接着: 1、下载Ollama: Download Ollama on macOS 2、下载模型 以1.5b为例,打开命令行,输入: ollama run deepseek-r1:1.5b 3、Pycharm安装Code GPT插件 打开PyCharm,找到文…

阿里云k8s服务部署操作一指禅

文章目录 DockerFile镜像操作阿里云k8s服务部署 DockerFile # 使用 JDK 17 官方镜像 # linux架构:FROM --platformlinux/amd64 openjdk:17-jdk-slim # arm架构:openjdk:17-jdk-slim FROM --platformlinux/amd64 openjdk:17-jdk-slim# 设置工作目录 WORK…

.NET + Vue3 的前后端项目在IIS的发布

目录 一、发布准备 1、安装 IIS 2、安装 Windows Hosting Bundle(.NET Core 托管捆绑包) 3、安装 IIS URL Rewrite 二、项目发布 1、后端项目发布 2、前端项目发布 3、将项目部署到 IIS中 三、网站配置 1、IP配置 2、防火墙配置 3、跨域配置…

交互编程工具之——Jupyter

Jupyter 是什么? Jupyter 是一个开源的交互式编程和数据分析工具,广泛应用于数据科学、机器学习、教育和研究领域。其核心是 Jupyter Notebook(现升级为 JupyterLab),允许用户在一个基于浏览器的界面中编写代码、运行…

微信小程序客服消息接收不到微信的回调

微信小程序客服消息,可以接收到用户进入会话事件的回调,但是接收不到用户发送消息的回调接口。需要在微信公众平台,把转发消息给客服的开关关闭。需要把这个开关关闭,否则消息会直接发送给设置的客服,并不会走设置的回…

easyexcel 2.2.6版本导出excel模板时,标题带下拉框及其下拉值过多不显示问题

需求背景&#xff1a;有一个需求要做下拉框的值有100多条&#xff0c;同时这个excel是一个多sheet的导入模板 直接用easyexcel 导出&#xff0c;会出现下拉框的值过多&#xff0c;导致生成出来的excel模板无法正常展示下拉功能 使用的easyexcel版本&#xff1a;<depende…

影视大数据分析新范式:亮数据动态代理驱动的实时数据采集方案

一、项目背景与挑战 在数据驱动决策的时代&#xff0c;影视数据分析对内容平台至关重要。但豆瓣等平台设有&#xff1a; 高频请求IP封禁机制User-Agent指纹检测请求频率阈值控制验证码验证系统 传统爬虫方案面临&#xff1a; 单一IP存活时间<5分钟采集成功率<30%数据更新…