谈谈php对接芝麻信用踩的坑


Posted in PHP onDecember 01, 2016

由于项目需要,接入芝麻信用对用户进行认证,打开芝麻信用官方网站( https://b.zmxy.com.cn/index.htm)查看官方demo,在文档中看到如图

谈谈php对接芝麻信用踩的坑

瞬间觉得这个官方demo的垃圾了。

在其中有需要注意如下:

1.本地生成密钥,可以按照提示进行生成

2.在“商家管理”中创建应用,通过第一步生成的密钥得到芝麻信用给的公钥,这就得到了加密用的密钥

注意:芝麻信用给的公钥只能复制,但是复制出来的格式是不对的,需要咱们手工处理每行64,和咱们生成的密钥格式一致,不然加密和解密将不能进行;

3.需要传递的参数根据文档可以得出,上图只是生成了一个参数,需要处理生成对应文档的数据返回;

直接上代码:

<?php 
  include('/ZmopClientphp'); 
  include('/ZhimaAuthInfoAuthorizeRequestphp'); 
  class TestAuthFreeze { 
    //芝麻信用网关地址 
    public $gatewayUrl = "https://zmopenapizmxycomcn/openapido"; 
    //商户公钥文件 
    //芝麻公钥文件 
    public $privateKeyFile = "path/rsa_private_keypem"; 
    public $zmPublicKeyFile = "path/zima_public_keypem"; 
 
    //数据编码格式 
    public $charset = "UTF-8"; 
    //芝麻分配给商户的appId 
    public $appId = "1000003"; 
 
 
  //生成移动端SDK 集成需要的sign 参数 ,并进行urlEncode 
  public function generateSign($certNo,$name,$certType='IDENTITY_CARD'){ 
    $client = new ZmopClient($this->gatewayUrl, $this->appId, $this->charset, $this->privateKeyFile,$this->zmPublicKeyFile); 
    $request = new ZhimaAuthInfoAuthorizeRequest(); 
    $request->setScene("test"); 
    // 授权来源渠道设置为appsdk 
    $request->setChannel("appsdk"); 
    // 授权类型设置为2标识为证件号授权见“章节4中的业务入参说明identity_type” 
    $request->setIdentityType("2"); 
    // 构造授权业务入参证件号,姓名,证件类型;“章节4中的业务入参说明identity_param” 
    $request->setIdentityParam("{\"certNo\":\"$certNo\",\"certType\":\"IDENTITY_CARD\", \"name\":\"$name\"}"); 
    // 构造业务入参扩展参数“章节4中的业务入参说明biz_params” 
    $request->setBizParams("{\"auth_code\":\"M_APPSDK\"}"); 
     
    $params = $client->generateEncryptedParamWithUrlEncode($request); 
    $sign = $client->generateSignWithUrlEncode($request); 
 
    $data['gatewayUrl'] = $this->gatewayUrl; 
    $data['appId'] = $this->appId; 
    $data['charset'] = $this->charset; 
    $data['params']=$params; 
    $data['sign'] = $sign; 
    return $data; 
  } 

  // 解密 
  public function zhimacallback($params){ 
    $this->privateKeyFile= "path/rsa_private_keypem"; 
    $client = new ZmopClient($this->gatewayUrl, $this->appId, $this->charset, $this->privateKeyFile,$this->zmPublicKeyFile); 
    $result=$client->generateSignCallBack($params,$this->privateKeyFile); 
    return $result; 
  } 
}  
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
杏林同学录(二)
Oct 09 PHP
ThinkPHP php 框架学习笔记
Oct 30 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
Oct 12 PHP
对象失去焦点时自己动提交数据的实现代码
Nov 06 PHP
PHP JS Ip地址及域名格式检测代码
Sep 27 PHP
教你如何快捷的使用cmd访问mysql小技巧
May 26 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
May 12 PHP
PHP通过API获取手机号码归属地
May 28 PHP
php检查字符串中是否有外链的方法
Jul 29 PHP
Apache PHP MySql安装配置图文教程
Aug 27 PHP
详解php实现页面静态化原理
Jun 21 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
PHP自定义函数获取汉字首字母的方法
Dec 01 #PHP
phpmailer绑定邮箱的实现方法
Dec 01 #PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 #PHP
thinkPHP商城公告功能开发问题分析
Dec 01 #PHP
thinkPHP订单数字提醒功能的实现方法
Dec 01 #PHP
PHP 芝麻信用接入的注意事项
Dec 01 #PHP
PHP中静态变量的使用方法实例分析
Dec 01 #PHP
You might like
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
php中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
Javascript &amp; DHTML 实例编程(教程)DOM基础和基本API
2007/06/02 Javascript
js中通过父级进行查找定位元素
2014/06/15 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
React全家桶环境搭建过程详解
2018/05/18 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
详解vue 组件注册
2020/11/20 Vue.js
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
python读取excel表格生成erlang数据
2017/08/26 Python
python实现图像识别功能
2018/01/29 Python
python自动12306抢票软件实现代码
2018/02/24 Python
python 列表降维的实例讲解
2018/06/28 Python
Python get获取页面cookie代码实例
2018/09/12 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
使用openCV去除文字中乱入的线条实例
2020/06/02 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
小学教师办公室制度
2014/02/03 职场文书
小学音乐教学反思
2014/02/05 职场文书
大学生素质拓展活动方案
2014/02/11 职场文书
企业员工培训感言
2014/02/26 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
会议欢迎词
2015/01/23 职场文书
2015年幼师工作总结
2015/04/28 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python