php实现支付宝商户转账

目录

一:背景介绍

一:准备工作

三:代码实现


一:背景介绍

最近工作中,要用到支付宝的商家转账功能,用php代码实现,网上找的内容,有些是老版本的实现,有些是调用sdk,而且功能还不完善。最后自己实现了官方最新的转账功能,特此记录下。

一:准备工作

1:在开放平台签约申请商户,得到商户id和app_id;

2:申请证书和秘钥

这里的证书有CSR私钥,应用公钥证书和支付宝公钥证书,根证书

,应用公钥证和根证书用于转账接口,CSR私钥用于签名,支付宝公钥证书用于转账接口返回值接口验签,东西还是比较多的。

三:代码实现

$parameter = [

'app_id' => $this->config'appid',

'method' => 'alipay.fund.trans.uni.transfer',

'format' => 'JSON',

'charset' => 'utf-8',

'sign_type' => 'RSA2',

'timestamp' => date('Y-m-d H:i:s'),

'version' => '1.0',

'alipay_root_cert_sn' => this-\>getRootCertSn(certPath.'alipayRoot.crt'),

'app_cert_sn' => this-\>getCertSn(certPath.'appPublicKey_'.$this->config'appid'.'.crt'),

];

//业务参数构造

$biz_content = [

'out_biz_no' => $params'order_no',

'trans_amount' => (string) $params'trans_amount',

'biz_scene' => 'DIRECT_TRANSFER',

'product_code' => 'TRANS_ACCOUNT_NO_PWD',

'order_title' => $trans_remark,

'payee_info' => [

'identity' => $params'client_id',

'identity_type' => 'ALIPAY_LOGON_ID',

'name' => $params'client_name',

]

];

parameter\['biz_content'\] = json_encode(biz_content, JSON_UNESCAPED_UNICODE);

// 生成签名参数+签名

parameter\['sign'\] = this->MyRsaSign(this-\>GetSignContent(parameter));

// 执行请求

result = this->HttpRequest('https://openapi.alipay.com/gateway.do', $parameter);

相关推荐
xiaoye-duck16 分钟前
《C++ 项目:手写大模型接入 SDK》Gemini接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型
zhikouai2 小时前
把外部助手接进聊天软件的架构分层与参数配置
服务器·网络·php
nice_lcj5203 小时前
Java Lambda 表达式入门:怎么写、怎么用、常用方法有哪些
java·开发语言·后端·面试
码农小河663 小时前
基于SSM+JSP+MySQL的在线医疗服务系统的设计与实现
java·开发语言·mysql
叼烟扛炮6 小时前
Linux 学习笔记(五十八):IO 多路复用封神——epoll 底层原理揭秘
linux·运维·服务器·网络·笔记·学习·php
叼烟扛炮6 小时前
Linux 学习笔记(五十一):数据链路层与 ARP 协议——局域网寻址与黑客骗局
linux·网络·网络协议·php·tcpdump
nice_lcj5207 小时前
ThreadLocal 入门:它是怎么隔离数据的、为什么会导致内存泄漏
java·开发语言·后端·面试·并发编程·内存泄漏·threadlocal
紧跟先前的步伐8 小时前
Go AI Agent 实战 28|Agent 的预算、超时与停止条件
开发语言·人工智能·后端·ai·golang
bksczm9 小时前
InnoDB 行格式详解:DYNAMIC / COMPACT / COMPRESSED / REDUNDANT
java·开发语言·数据库
春涧草茶9 小时前
慢就是快16-1协程
开发语言·前端·python