thinkphp整合系列之支付宝RSA加密方式
thinkphp整合系列之支付宝RSA加密方式
上篇博客写的是MD5加密方式;thinkphp整合系列之支付宝MD5加密方式扫码支付http://baijunyao.com/article/75
但是呢;移动支付是没有MD5加密的;只能是RSA加密;
long long ago;支付宝官方是没有给RSA加密的demo的;
这次为了写博客整理代码的时候;竟然发现了官方给了一份demo;
但是;竟然把MD5和RSA分成了2个SDK;
好吧;这里给出的是二合一版的SDK;切换加密方式只需在配置项中设置下即可;
示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin
一:导入sdk
/ThinkPHP/Library/Vendor/Alipay
这个sdk和上篇文章中的MD5加密方式的sdk是一套;
二:配置项
/Application/Common/Conf/config.php
- 'ALIPAY_CONFIG' => array(
- 'partner' => '', // partner 从支付宝商户版个人中心获取
- 'seller_email' => '', // email 从支付宝商户版个人中心获取
- 'key' => '', // key 从支付宝商户版个人中心获取
- 'sign_type' => strtoupper(trim('MD5')), // 可选md5 和 RSA
- 'input_charset' => 'utf-8', // 编码 (固定值不用改)
- 'transport' => 'http', // 协议 (固定值不用改)
- 'cacert' => VENDOR_PATH.'Alipay/cacert.pem', // cacert.pem存放的位置 (固定值不用改)
- 'notify_url' => 'http://baijunyao.com/Api/Alipay/alipay_notify', // 异步接收支付状态通知的链接
- 'return_url' => 'http://baijunyao.com/Api/Alipay/alipay_return', // 页面跳转 同步通知 页面路径 支付宝处理完请求后,当前页面自 动跳转到商户网站里指定页面的 http 路径。 (扫码支付专用)
- 'show_url' => 'http://baijunyao.com/User/Order/index', // 商品展示网址,收银台页面上,商品展示的超链接。 (扫码支付专用)
- 'private_key_path' => '', //移动端生成的私有key文件存放于服务器的 绝对路径 如果为MD5加密方式;此项可为空 (移动支付专用)
- 'public_key_path' => '', //移动端生成的公共key文件存放于服务器的 绝对路径 如果为MD5加密方式;此项可为空 (移动支付专用)
- ),
既然是RSA加密方式;那主要就是来接收移动支付支付成功后的支付结果了;
那么就不需要管return_url、show_url这两个参数了;
RSA私钥及公钥生成方式在这:https://doc.open.alipay.com/doc2/detail?treeId=58&articleId=103242&docType=1
需要强调的是注释中说的;路径要是php可以访问的绝对路径;
三:接收异步通知
我们是需要给移动端开发人员一个接收支付结果通知的url既notify_url;
移动端支付成功后;支付宝的服务器会向我们指定的notify_url发送post通知;
当判断支付成功后;就更改订单状态;
/Application/Api/Controller/AlipayController.class.php
- /**
- * notify_url接收页面
- */
- public function alipay_notify(){
- // 引入支付宝
- vendor('Alipay.AlipayNotify','','.class.php');
- $config=$config=C('ALIPAY_CONFIG');
- $alipayNotify = new \AlipayNotify($config);
- // 验证支付数据
- $verify_result = $alipayNotify->verifyNotify();
- if($verify_result) {
- echo "success";
- // 下面写验证通过的逻辑 比如说更改订单状态等等 $_POST['out_trade_no'] 为订单号;
- }else {
- echo "fail";
- }
- }
ok;到这里;支付宝的两种加密方式就整合完成了;
thinkphp整合系列之支付宝RSA加密方式的更多相关文章
- ThinkPHP3.2 整合支付宝RSA加密方式
RSA核心加密验证算法 <?php /** * RSA签名 * @param $data 待签名数据 * @param $private_key 商户私钥字符串 * return 签名结果 */ ...
- IOS RSA 加密方式
采用RSA加密方式,主要是生成公钥和私钥,公钥用来加密,私钥用来解密,至于其中如何实现的,网上有很多原理. 参见如下: https://github.com/jslim89/RSA-objc PS: ...
- thinkphp整合系列之极验滑动验证码
对于建站的筒子们来说:垃圾广告真是让人深恶痛绝:为了清净:搞个难以识别的验证码吧:又被用户各种吐槽:直到后来出现了极验这个滑动的验证码:这真是一个体验好安全高的方案:官网:http://www.gee ...
- thinkphp整合系列之phpexcel生成生成excel文件
在后台管理中会经常需要将数据生成excel表格的: php生成excel有两种方案: 一种是通过phpexcel生成xls格式的表格文件: 另一种则直接通过逗号换行生成csv格式的表格文件: 这里先讲 ...
- thinkphp整合系列之微信公众号支付
<?phperror_reporting(E_ALL);ini_set('display_errors', '1');// 定义时区ini_set('date.timezone','Asia/S ...
- 使用RSA加密方式加密文件
链接:GITHUB 使用RSA对流进行加密并保存到文件中 缺点:速度非常的慢,加密大文件就等着吧 环境 VS2017 + C# 7.0 + .net framwork 4.7.2
- thinkphp整合系列之极验滑动验证码geetest
给一个央企做官网,登录模块用的thinkphp验证码类.但是2019-6-10到12号,国家要求央企检验官网漏洞,防止黑客攻击,正直贸易战激烈升级时期,所以各事业单位很重视官网安全性,于是乎集团总部就 ...
- 逆向番茄社区app的rsa加密方式
Parse RSA public and private key pair from string in Java 逆向某APP,发现其大部分配置文件都是加密的 .所以逆向算法并解密 RSA和AES密 ...
- thinkphp整合系列之短信验证码、订单通知
现在这个短信通知泛滥的年代:应用如果没有个短信注册:你都不敢说你是搞开发的: 这个验证码搞起来是不难的:但是如果刚接触也是有点不知从哪下手的迷茫: 先讲下概念: 要想发送验证码:需要至少三项:appi ...
随机推荐
- SQL 第二章 作业
/*第二章 作业*/ create table S ( sno char(2) NOT NULL UNIQUE, sname char(3), city char(2) ); alter table ...
- php数组和字符串转换
PHP 中由于数组和字符串这两种变量类型是如此常用,以至于 PHP 具有两个函数,可以在字符串和数组之间互相进行转换. $array=explode(separator,$string); $stri ...
- NOI2015 程序自动分析 prog
何等水题 某神犇仿关押罪犯的写法 却写挂了 然而实际上并不需要补集之类的 #include<iostream> #include<cstring> #include<c ...
- Android性能测试工具 Emmagee
Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具. 支持SDK:Android2.2以及以上版本 Emmagee功能介绍 1.检测当前时间被测应用占用的CP ...
- C#中格式化数据的输出
格式项都采用如下形式: {index[,alignment][:formatString]} 其中"index"指索引占位符,这个肯定都知道: ",alignment&q ...
- linux两台server远程copy文件
1.将远程机器的文件copy到本地 scp -r root@10.10.15.25:/bea /gg 将远程的/bea copy到/gg以下 -r Recursively copy ent ...
- 【AIX】采用vi语法编辑命令行
AIX中不能像centos那样移动方向键上.下来查询历史键入的命令行记录 可以通过一条命令采用vim的语法编辑命令行,查询历史记录. # set -o vi 在命令行输入上述命令后就可以: ESC+k ...
- 剪切板 复制文本 ClipboardManager
代码 public class MainActivity extends ListActivity { private EditText tv_info; private Clipbo ...
- bzoj 1034 (田忌赛马++)
/* 这类题的最优策略: 自己最好的干掉对方最好的 或者 自己最差的干掉对方最差的 不能的话 用自己最差的 对阵对方最好的 这样是最优的 实现嘛 搞两个队列跑一跑 */ #include<ios ...
- ASP.NET-FineUI开发实践-17
我又不用FineUI开发,所以FineUI项目经验等于0,最近在忙别的,所以也没工夫研究.积累了论坛和群里的问题,写下来留个备份 1.在grid可编辑单元格中,如果需要在点击该单元格时,单元格中所有文 ...