php支付系统验签开发,PHP支付接口RSA验证
这几天一直困扰的PHP RSA签名验证问题终于解决了,在这里记录一下。据我所知,国内大部分支付接口都支持RSA签名验证,有的甚至只提供RSA验签。
支付接口采用的算法列表(我遇到过的):建设银行网上银行 RSA签名(MD5withRSA)
联通短信支付 RSA签名(MD5withRSA/SHA1withRSA)
支付宝支持 DSA签名、RSA签名、MD5签名
PHP 验签
Sign 验签数据准备:公钥(Public key)
Sign签名(一般是base64加密过的)
Data参数(参数列表,Sign对应的参数值)
php的openssl扩展里已经封装好了验签的方法openssl_verify。
如果在Windows下的php.ini需要开启Openssl模块:extension=php_openssl.dll
这里再解释一下openssl_verify函数:int openssl_verify ( string $data , string $signature , mixed $pub_key_id [, int $signature_alg = OPENSSL_ALGO_SHA1 ] )
openssl_verify() 函数来验证sign签名是否正确,是通过指定的data数据和公钥相关的pub_key_id来实现的。
从支付接口获取到的公钥Public key,如下:—–BEGIN PUBLIC KEY—–
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxJUb3d2QTkW67SILT33Y
GqmP8HmXqtXpM5DPKFibkMs2f6tk+52qe3aOb4/bryqG754o5s1Yg/9o9duwE3VL
If9tuFVQ6TSrN2cacjDNXsW3aIkk6HdBvytrj/XJePQIXmjZZjPGqbDdItmJxUI+
HXYDxiaZIe4kuVRA8FbKr6iZ5uW9bfO5N2GY+IncPFFZivDa2Xq8kuOwxyZXi+cX
4W9LnsYrkq3jZ5/9RGNGzXJMs+GkFUKFqaHWhqW5xAwsKQcD8xiLuwAHt6wGIfy1
R2yQQQwetK02i44MvKRCEX8tlUYvCvr0T38B3kX2hHgmIxP3Cpv5jbJts+mMD7cG
iQIDAQAB
—–END PUBLIC KEY—–
注意这个是2048位的公钥应该是9行或者10行,不能为1行,不然PHP的openssl_pkey_get_public无法读取,pub_key_id的结果为false,我就在这个上吃了大亏。如果没有—–BEGIN PUBLIC KEY—– 和 —–END PUBLIC KEY—– 可以自己加上,最后保存到一个rsa_public_key.pem文件中。像这样:
如果是1024位的公钥,应该是6行或者7行。
php支付系统验签开发,PHP支付接口RSA验证相关推荐
- 微信支付-通知验签始终不通过的问题
记一次微信支付验签始终异常问题,折腾了两宿,最后是 body 有问题 o(╥﹏╥)o 这里使用的是 <dependency><groupId>com.github.wechat ...
- 2023全新个人免签约支付系统PHP源码 码支付系统 ThinkPHP6框架全开源 starpay2.0Beta
starpay2.0Beta 2023全新个人免签约支付系统PHP源码 码支付系统 ThinkPHP6框架全开源 starpay2.0Beta 软件为开源程序,很好用,感谢老大的共享. 下载地址:ht ...
- iap php,PHP语言之华为应用内支付IAP验签
背景描述 项目对接华为HMS SDK的应用内支付IAP SDK3.x以后,支付成功后,可从PurchaseResultInfo对象中获取到购买数据InAppPurchaseData及其签名数据,需要使 ...
- PHP语言之华为应用内支付IAP验签
背景描述 项目对接华为HMS SDK的应用内支付IAP SDK3.x以后,支付成功后,可从PurchaseResultInfo对象中获取到购买数据InAppPurchaseData及其签名数据,需要使 ...
- java 微信支付吊起 验签等源码
微信支付 自己以前没做过微信支付的时候很是迷茫,现把2020最新附上,直接上代码 吊起支付 public JsonResult wxPay(String ids) throws Exception { ...
- php phpseclib 验签,通联支付项目资料含demo.zip
[实例简介] 移动,PC支付网页版接口规范与DEMO(适用手机网页.微信公众号) [实例截图] [核心代码] 通联支付项目资料含demo ├── 1.txt └── 通联支付项目资料含demo └── ...
- 【支付系统学习笔记】-二支付系统设计(支付网关设计)
前言: 本文属于学习笔记,首先感谢原作者:凤凰牌老熊,博客链接:http://blog.lixf.cn/ 一 概述 在支付系统中,支付网关和支付渠道的对接是最核心的功能.其中支付网关是对外提供服务的接 ...
- 微信智慧支付日系统服务器崩溃,微信支付大面积出现故障 微信支付系统繁忙怎么解决 微信支付崩溃原因是什么...
10月29日晚间,微信支付突然大面积出现故障,支付时显示错误,商家扫码枪显示失败,美团外卖.京东商城.滴滴出行等支持微信支付的软件中,均显示暂不能使用微信支付.如果直接用微信支付扫码付款,也会出现&q ...
- 【支付系统学习笔记】-二支付设计(银行卡支付)
前言: 本文属于学习笔记,首先感谢原作者:凤凰牌老熊,博客链接:http://blog.lixf.cn/ 一 支付与交易 作者先明确了概念: 交易是生成订单:支付是对订单进行付款. 支付行为有多种 ...
最新文章
- 最新JAVA性能调优实战教程_java性能调优实战 - osc_9z8xc00s的个人空间 - OSCHINA - 中文开源技术交流社区...
- intellij idea2016 web项目创建
- 京东金融曹鹏:没有数据的金融科技公司是纸上谈兵
- 不知因果,何以谈优化?
- 网易云信助力中国航空工业集团,打造数字化云办公平台
- python读取只读word只读_人生苦短我学Python——Word处理之快速Word转PDF
- platform_SpringOne Platform 2016回顾
- java验证工具类(待验证)
- PHP多进程初探 --- 再次谈daemon进程
- zeppelin配置hive教程
- [NOIP2016 普及组] 海港
- 【MEMS传感器】BMI160九轴传感器SPI驱动
- 小程序发布上线流程_小程序如何发布?微信小程序发布流程很简单
- ChromeDriver的浏览器版本不支持解决办法
- 嵌入式面试经验分享1——应届生
- 潜艇空气独立推进系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- ffmpeg复杂滤镜-filter_complex
- 移动商务,还是短信商务?
- Linux命令篇:chmod 777 与 chmod +x
- 第一阶段:Python开发基础 day18 模块的使用(三)