谈谈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
简单PHP上传图片、删除图片实现代码
May 12 PHP
php的字符串用法小结
Jun 08 PHP
PHP学习 变量使用总结
Mar 24 PHP
thinkphp 多表 事务详解
Jun 17 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
PHP中使用asort进行中文排序失效的问题处理
Aug 18 PHP
PHP实现无限极分类图文教程
Nov 25 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
Apr 21 PHP
实例介绍PHP中zip_open()函数用法
Feb 15 PHP
PHP中localeconv()函数的用法
Mar 26 PHP
PHP连接MySQL数据库三种实现方法
Dec 10 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时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
Extjs学习过程中新手容易碰到的低级错误积累
2010/02/11 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
2013/12/14 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
2016/12/14 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
详解vue移动端日期选择组件
2018/02/22 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
python基于phantomjs实现导入图片
2016/05/13 Python
python字典操作实例详解
2017/11/16 Python
Django框架模板介绍
2019/01/15 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
Python Selenium参数配置方法解析
2020/01/19 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
Python爬虫与反爬虫大战
2020/07/30 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
旅游网创业计划书
2014/01/31 职场文书
英语教师求职信
2014/06/16 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
2015大学迎新标语
2015/07/16 职场文书
培训简讯范文
2015/07/20 职场文书
小学课改工作总结
2015/08/13 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
python 制作一个gui界面的翻译工具
2021/05/14 Python
python小型的音频操作库mp3Play
2022/04/24 Python