谈谈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 相关文章推荐
php mysql数据库操作类
Jun 04 PHP
关于php连接mssql:pdo odbc sql server
Jul 20 PHP
PHP中实现中文字符进制转换原理分析
Dec 06 PHP
php生成略缩图代码
Jul 16 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
析构函数与php的垃圾回收机制详解
Oct 28 PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 PHP
Laravel5权限管理方法详解
Jul 26 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
Apr 18 PHP
PHP 记录访客的浏览信息方法
Jan 29 PHP
关于PHP中interface的用处详解
Jul 26 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
2020/12/02 Vue.js
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
Python中endswith()函数的基本使用
2015/04/07 Python
python web框架学习笔记
2016/05/03 Python
Python数据分析matplotlib设置多个子图的间距方法
2018/08/03 Python
Python3标准库总结
2019/02/19 Python
Python 串口读写的实现方法
2019/06/12 Python
利用python开发app实战的方法
2019/07/09 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
python中format函数如何使用
2020/06/22 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
2020/07/03 Python
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
烹调加工管理制度
2014/02/04 职场文书
大学生党员自我评价范文
2014/04/09 职场文书
社会实践评语
2014/04/28 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
大学生联谊活动策划书(光棍节)
2014/10/10 职场文书
农村党支部承诺书
2015/04/30 职场文书
单位更名证明
2015/06/18 职场文书
教育教学读书笔记
2015/07/02 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
会计手工模拟做账心得体会
2016/01/22 职场文书
《草虫的村落》教学反思
2016/02/20 职场文书
mysql 索引合并的使用
2021/08/30 MySQL