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

 更新时间:2016年12月01日 17:01:04   作者:我的  
由于支付宝的普及,芝麻信用的使用也越来越广,本文谈谈php对接芝麻信用踩的坑,有兴趣的同学可以了解一下。

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

瞬间觉得这个官方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; 
  } 
}  
?> 

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

您可能感兴趣的文章:

相关文章

  • Laravel中unique和exists验证规则的优化详解

    Laravel中unique和exists验证规则的优化详解

    这篇文章主要给大家介绍了关于Laravel中unique和exists验证规则的优化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • PHP sdk实现在线打包代码示例

    PHP sdk实现在线打包代码示例

    这篇文章主要介绍了PHP sdk实现在线打包代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • ThinkPHP5&5.1框架关联模型分页操作示例

    ThinkPHP5&5.1框架关联模型分页操作示例

    这篇文章主要介绍了ThinkPHP5&5.1框架关联模型分页操作,结合实例形式分析了thinkPHP5、5.1关联模型的建立、控制器、模型的实现及分页操作相关技巧,需要的朋友可以参考下
    2019-08-08
  • joomla实现注册用户添加新字段的方法

    joomla实现注册用户添加新字段的方法

    这篇文章主要介绍了joomla实现注册用户添加新字段的方法,实例分析了Joomla注册用户添加新字段的步骤与相关实现技巧,需要的朋友可以参考下
    2016-05-05
  • Laravel Eloquent的九个实用特性详解

    Laravel Eloquent的九个实用特性详解

    这篇文章主要为大家介绍了LaravelEloquent的九个实用特性详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法

    Laravel框架运行出错提示RuntimeException No application encryption ke

    这篇文章主要介绍了Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法,涉及Laravel框架相关配置、设置与运行操作技巧,需要的朋友可以参考下
    2019-04-04
  • PHP封装返回Ajax字符串和JSON数组的方法

    PHP封装返回Ajax字符串和JSON数组的方法

    下面小编就为大家带来一篇PHP封装返回Ajax字符串和JSON数组的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • PHP验证终端类型是否为手机的简单实例

    PHP验证终端类型是否为手机的简单实例

    下面小编就为大家带来一篇PHP验证终端类型是否为手机的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • thinkPHP框架中layer.js的封装与使用方法示例

    thinkPHP框架中layer.js的封装与使用方法示例

    这篇文章主要介绍了thinkPHP框架中layer.js的封装与使用方法,结合实例形式分析了thinkPHP中调用layer.js的具体操作技巧与注意事项,需要的朋友可以参考下
    2019-01-01
  • 浅谈Laravel核心解读之Console内核

    浅谈Laravel核心解读之Console内核

    这篇文章主要介绍了浅谈Laravel核心解读之Console内核,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12

最新评论