PHP 接入支付宝证书方式签名以及验签

支付宝在 2019.10.25 日左右更新了新的 PHP SDK (v4.1.0)。 之前的 PHP SDK(v3.4.2) 仅支持公钥方式加签。这次更新之后 PHP SDK 也可以使用证书进行签名和验签了。

支付宝官方 SDK 下载地址

下载解压 并将文件夹中的 aop 文件夹 直接复制到项目中你想要放到文件夹里,例如 extend
文件夹 (为了测试 crt 证书文件也已经放到同目录下 cert 目录中了)

先修正 SDK 中的两个小错误:AopCertClient.php 中
478 行左右 有一个检查是否为空的方法

修改为

 if (method_exists($request, 'getApiVersion')){$iv = $request->getApiVersion();}else{$iv = $this->apiVersion;}

502 行左右 $request 的 getApiParams 方法少了一个 字母 m 改了就好

修改后

 //获取业务参数$apiParams = $request->getApiParams();

引入文件

 require_once EXTEND_PATH.'aop/AopCertClient.php';require_once EXTEND_PATH.'aop/AopCertification.php';require_once EXTEND_PATH.'aop/request/AlipayTradeQueryRequest.php';require_once EXTEND_PATH.'aop/request/AlipayTradeWapPayRequest.php';require_once EXTEND_PATH.'aop/request/AlipayOpenOperationOpenbizmockBizQueryRequest.php';

从 aop/test/ 目录下 找下 AopCertClientTest.php (因为是使用证书进行签名,如果是使用公钥进行签名,就应该参考 AopClientTest.php 文件,不做赘述)直接复制相关代码进行修改比如 我复制的就是

 //1、execute 使用$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 = '你的appid';$aop->rsaPrivateKey = '你的应用私钥';$aop->alipayrsaPublicKey = $aop->getPublicKey($alipayCertPath);//调用getPublicKey从支付宝公钥证书中提取公钥$aop->apiVersion = '1.0';$aop->signType = 'RSA2';$aop->postCharset='utf-8';$aop->format='json';$aop->isCheckAlipayPublicCert = true;//是否校验自动下载的支付宝公钥证书,如果开启校验要保证支付宝根证书在有效期内$aop->appCertSN = $aop->getCertSN($appCertPath);//调用getCertSN获取证书序列号$aop->alipayRootCertSN = $aop->getRootCertSN($rootCertPath);//调用getRootCertSN获取支付宝根证书序列号$request = new AlipayTradeQueryRequest ();$request->setBizContent("{" ."\"out_trade_no\":\"20150320010101001\"," ."\"trade_no\":\"2014112611001004680 073956707\"," ."\"org_pid\":\"2088101117952222\"," ."      \"query_options\":[" ."        \"TRADE_SETTE_INFO\"" ."      ]" ."  }");$result = $aop->execute ( $request);var_dump($result);

因为我要用的是 单笔转账到支付宝账户的接口。
所以 上面的代码要修改两个地方。

 $request = new AlipayFundTransToaccountTransferRequest ();// 官方示例  切记要自己修改$request->setBizContent("{" ."\"out_biz_no\":\"3142321423432\"," ."\"payee_type\":\"ALIPAY_LOGONID\"," ."\"payee_account\":\"abc@sina.com\"," ."\"amount\":\"12.23\"," ."\"payer_show_name\":\"上海交通卡退款\"," ."\"payee_real_name\":\"张三\"," ."\"remark\":\"转账备注\"" ."  }");

修改完成之后,就可以跑代码进行测试了。

支付宝证书签名 PHP SDK相关推荐

  1. TP5 对接支付宝支付接口开发详细步骤(证书签名方式)

    注: 支付宝支付分为支付宝公钥和证书签名方式两种,如果需要使用退款功能要用证书签名方式开发 php接入支付宝证书方式签名 支付宝 PHP SDK 分为老版和新版,老版本的 PHP SDK(v3.4.2 ...

  2. 支付宝 php rsa2,#支付宝 RSA2和公钥证书签名验签的区别?

    报错原因 1.密钥不匹配 2.编码格式不统一 3.请求参数数据有误 4.接口调用加签方式和应用上选择的加签方式不对应 5.sdk调用的提交方法有误 6.sdk运行环境有误 排查方案 1.匹配不密钥 ( ...

  3. 利用证书签名绕过杀软

    此文乃一般水文 ~ 师傅们轻喷 此文的起端是这样的,在做实验的时候,很多次双击执行文件时,都显示软件不安全或者软件并无签名无法校验什么鬼等操作-在我午休的时候死活睡不着,我就想着能不能给执行文件加个证 ...

  4. php 支付宝证书 单笔转账到账户

    php 支付宝证书 单笔转账到账户 1. 支付宝开发者中心申请 单笔转账到账户 2. 上传应用公钥证书 3. 下载支付宝SDK 4. 查看支付宝alipay.fund.trans.uni.transf ...

  5. php 支付宝证书 单笔转账到账户

    php 支付宝证书 单笔转账到账户 1. 支付宝开发者中心申请 单笔转账到账户 2. 上传应用公钥证书 3. 下载支付宝SDK 4. 查看支付宝alipay.fund.trans.uni.transf ...

  6. 支付宝证书模式(转账给其他支付宝)

    支付宝证书模式(转账给其他支付宝) 因为支付宝的加密方式要求资金类必须用证书方式加密,所以... 1.去生成crt证书 2.开始开发 初始化 //证书模式vendor("Alipay.aop ...

  7. .NET项目更新支付宝证书步骤

    今天项目更新支付宝证书,更新完毕后,发现报错"RSA2签名遭遇异常,请检查私钥格式是否正确" 后发现原来是支付宝提供的密钥工具生成出来的私钥为PKCS8格式,而.NET下是无法使用 ...

  8. alipay-sdk-python支付宝开放平台官方SDK使用详解

    一.环境搭建 ​​​​​​1. 安装支付宝开放平台官方SDK(最好在python的虚拟环境中安装 pip install alipay-sdk-python 二.功能解析 1.构建支付宝客户端:功能是 ...

  9. 关于钥匙串中所有证书签名无效的问题解决纪录

    年后上班发现很多人钥匙串中的证书都出现了证书签名无效的问题,根据"Kelvin神"发的解决方法,现纪录如下,以便以后再出现同样的问题时不知如何解决,问题如图所示:  解决此问题只需 ...

最新文章

  1. 《Go并发编程实战》第2版 紧跟Go的1.8版本
  2. message/maillog日志提示磁盘innode、io错误等,扫描磁盘很多坏道
  3. Rust学习资料大全
  4. Amazon S3和Swift鉴权机制分析
  5. Pxe+Kickstart批量网络安装操作系统
  6. osgi 模块化_OSGI –模块化您的应用程序
  7. common lisp 学习第一天 初步接触
  8. 暑假攻略:怎样让孩子过一个充实又省钱的假期
  9. 【BZOJ1443】游戏Game,博弈+二分图匹配
  10. 第二章 html标记语言,第二章-认识HTML标签
  11. 倍周期分岔 matlab,由倍周期分岔走向混沌-Read.DOC
  12. GMSSL双证书认证C/S(Linux版)
  13. realtek高清晰音频管理器没有设备高级设置怎么设置音箱与耳机同时响
  14. 我儿子今年15周岁,学习不好,去年上的高职,今年我犹豫是让他继续上,还是学个手艺?...
  15. C#开发OPC客户端
  16. ppt中只有声音没有图像处理
  17. Go语言和php个和lua,当 Go 遇上了 Lua
  18. 博客2.0时代——读者的赞赏,才是原创的动力
  19. 单招报计算机要考什么,单招考试一般都考什么内容
  20. 视频教程-思科CCNP专题系列13:IP多播协议-思科认证

热门文章

  1. 如何写CRM需求——客户服务管理篇
  2. 网站目录扫描工具webdirscan
  3. 国内用户如何申请加入ChatGPT版必应搜索候补
  4. excel打开大文件很卡
  5. 视频内容安全保护技术分析与实现
  6. 神经网络如何进行预测
  7. 魅蓝x android,魅蓝X的屏幕怎么样?魅蓝X屏幕材质是什么?
  8. Roxe全球支付网络进军巴西市场,与Rana Express合作推出汇款计划
  9. 王者荣耀1v1单挑,柜台商品管理系统
  10. 华为终端云服务助力温超成就舒心网购之旅