IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP支付宝转账到支付宝账号/支付(公钥证书方式) -> 正文阅读

[PHP知识库]PHP支付宝转账到支付宝账号/支付(公钥证书方式)

最近开发涉及到了支付宝转账到支付宝账号功能,接下来由应用申请开始到代码模块来简单说下流程.

1.准备工作:支付宝控制台 应用申请-接口申请

第一步创建对应应用
在这里插入图片描述
第二步申请转账接口(需要商家账号)
在这里插入图片描述
第三步设置接口加密方式(加签方式公钥证书)
在这里插入图片描述
在这里插入图片描述
选择在线加密方式生成CSR
在这里插入图片描述
第四步上传对应的CSR获取证书,并且下载到本地请添加图片描述

2.开发

第一步下载 官方SDK

(如果错误:Cannot redeclare Decrypt()错误表示SDK中的Encrypt()/Decrypt()函数和你项目中定义的函数重名了修改下就好)

(SDK中aop/request目录里面没用到的php可以自己清理)

第二步示例

public function alipay()
    {
        vendor('alipayAop.aop.AopCertClient');
        vendor('alipayAop.aop.request.AlipayFundTransUniTransferRequest');
        $aop = new \AopCertClient;
        $appCertPath = "应用证书路径(要确保证书文件可读),例如:/home/admin/cert/appCertPublicKey.crt";
        $alipayCertPath = "支付宝公钥证书路径(要确保证书文件可读),例如:/home/admin/cert/alipayCertPublicKey_RSA2.crt";
        $rootCertPath = "支付宝根证书路径(要确保证书文件可读),例如:/home/admin/cert/alipayRootCert.crt";

        $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
        $aop->appId = "app_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);
        //实例化具体API对应的request类,类名称和接口名称对应
        $request = new \AlipayFundTransUniTransferRequest();
        $bizcontent = [
            'out_biz_no' => 'test1111111111', // 订单号
            'trans_amount' => '0.10',   // 提现实际金额
            'product_code' => "TRANS_ACCOUNT_NO_PWD",//转账为:TRANS_ACCOUNT_NO_PWD
            'biz_scene' => 'DIRECT_TRANSFER',//单笔无密转账到支付宝:DIRECT_TRANSFER
            'payee_info' => [
                'identity' => 'xxxxxx', // 收款人帐户
                'identity_type' => 'ALIPAY_LOGON_ID',//支付宝登录id:ALIPAY_LOGON_ID
                'name' => 'xxxx', // 收款人姓名
            ],
            'remark' => "单笔转账到支付宝账户接口测试", // 转帐备注
        ];
        $request->setBizContent(json_encode($bizcontent));
        //这里和普通的接口调用不同,使用的是sdkExecute
        $result = $aop->execute($request);
        $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
        $resultCode = $result->$responseNode->code;
        if (!empty($resultCode) && $resultCode == 10000) {
            //成功
        } else {
            //失败
        }
    }

(如果出现SSL certificate problem: unable to get local issuer certificate错误可以参考这篇文章https://blog.csdn.net/sanbingyutuoniao123/article/details/71124655)

谢谢阅读~

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-14 13:46:45  更:2021-08-14 13:47:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/14 2:22:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码