谈谈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模拟SQL Server的两个日期处理函数
Oct 09 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
Jul 10 PHP
php.ini中date.timezone设置分析
Jul 29 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
Jan 17 PHP
PHP批量采集下载美女图片的实现代码
Jun 03 PHP
coreseek 搜索英文的问题详解
Jun 08 PHP
thinkphp普通查询与表达式查询实例分析
Nov 24 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
php实现的用户查询类实例
Jun 18 PHP
php目录拷贝实现方法
Jul 10 PHP
PHP判断是否是微信打开还是浏览器打开的方法
Feb 27 PHP
thinkphp整合系列之极验滑动验证码geetest功能
Jun 18 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实现的获取URL信息的类
2007/01/02 PHP
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
Python有序字典简单实现方法示例
2017/09/28 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
Python中logging日志库实例详解
2020/02/19 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
python实现密码强度校验
2020/03/18 Python
Python colormap库的安装和使用详情
2020/10/06 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
傲盾软件面试题
2015/08/17 面试题
大学毕业生个人自荐信范文
2014/01/08 职场文书
物理系毕业生自荐书范文
2014/02/22 职场文书
三字经教学反思
2014/04/26 职场文书
中药学专业求职信
2014/05/31 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
诚信教育主题班会
2015/08/13 职场文书
使用canvas仿Echarts实现金字塔图的实例代码
2021/11/11 HTML / CSS