如何使用沙箱测试芝麻认证(php版)

来自    芝麻信用 | 
作者:我是个导演  |  更新于:2017-08-14 18:48:28     
说明:
  本帖是利用支付宝沙箱测试芝麻认证接口
  测试环境:Apache2.4.23 +php 5.6.25
  接口文档:【查看
  沙箱环境测试正式环境请修改网关为下方值
正式环境网关:https://openapi.alipay.com/gateway.do
特别说明:
  zhima.customer.certification.certify芝麻认证开始认证接口 使用沙箱钱包只能看到流程但是认证会报错失败
  实际测试以正式环境为准。

测试流程:
  1.先调用认证初始化接口zhima.customer.certification.initialize
  注意点:
    1)transaction_id保持唯一性
    2)product_code使用默认值:w1010100000000002978
    3)//沙箱测试cert_name填写沙箱账号名称,cert_no填写沙箱身份证号【查看地址】获取信息(如下图)
      
  请求代码如下:
<?php
//zhima.customer.certification.initialize认证初始化接口
require_once 'AopSdk.php';
  
$aop = new AopClient ();
$aop->gatewayUrl = 'https://openapi.alipaydev.com/gateway.do';
$aop->appId = '';
$aop->rsaPrivateKey = '';
$aop->alipayrsaPublicKey='';
$aop->apiVersion = '1.0';
$aop->postCharset='utf-8';
$aop->format='json';
$aop->signType = 'RSA2';
  
$request = new ZhimaCustomerCertificationInitializeRequest ();
$request->setBizContent("{" .
    "\"transaction_id\":\"zhima201708140000000000002\"," .//保持唯一性
    "\"product_code\":\"w1010100000000002978\"," .//默认值请勿修改
    "\"biz_code\":\"FACE\"," .
    //沙箱测试cert_name填写沙箱账号名称,cert_no填写沙箱身份证号
    "\"identity_param\":\"{\\\"identity_type\\\":\\\"CERT_INFO\\\",\\\"cert_type\\\":\\\"IDENTITY_CARD\\\",\\\"cert_name\\\":\\\"填写沙箱账号\\\",\\\"cert_no\\\":\\\"填写沙箱身份证号\\\"}\"}");
$result = $aop->execute ($request);
var_dump($result);



 调用成功返回如下信息:
  
public 'zhima_customer_certification_initialize_response' => 
   object(stdClass)[10]
     public 'code' => string '10000' (length=5)
     public 'biz_no' => string 'ZM201708143000000484000579530488' (length=32)
     public 'msg' => string 'Success' (length=7)
 public 'sign' => string 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

 注:生成的bizNo有效期11小时,超时后过期

 2.芝麻认证开始认证接口zhima.customer.certification.certify
  注意点:
    1)填写认证初始化返回的biz_no的值进行请求
    2)调用pageExecute方法并且要在手机中打开连接进行验证
   3)return_url 说明:
    alipays://方式(带s方式)您的网站必须支持https方式才可以跳转 例: alipays://www.taobao.com
    alipay://方式你的网站支持http方式就可以跳转 例: alipay://www.taobao.com
  请求代码如下(直接唤起授权页面方式):
<?php
//芝麻认证开始认证接口zhima.customer.certification.certify
require_once 'AopSdk.php';
  
$aop = new AopClient ();
$aop->gatewayUrl = 'https://openapi.alipaydev.com/gateway.do';
$aop->appId = '';
$aop->rsaPrivateKey = '';
$aop->alipayrsaPublicKey='';
$aop->apiVersion = '1.0';
$aop->postCharset='utf-8';
$aop->format='json';
$aop->signType = 'RSA2';
  
$request = new ZhimaCustomerCertificationCertifyRequest ();
$request->setReturnUrl("https://www.taobao.com");
//填写认证初始化返回的biz_no的值
$request->setBizContent("{\"biz_no\":\"ZM201708143000000484800579530488\"}");
$result = $aop->pageExecute($request);
echo $result;

 请求代码如下(输出长链接方式):
$request = new ZhimaCustomerCertificationCertifyRequest ();
$request->setReturnUrl("https://www.taobao.com");
//填写认证初始化返回的biz_no的值
$request->setBizContent("{\"biz_no\":\"4b0c3fffd8592ac1b5a9039bf065ee23\"}");
$result = $aop->pageExecute($request,"GET");
//获取长链接方式,输出在页面中
echo htmlspecialchars($result);

  3.芝麻认证查询接口zhima.customer.certification.query

  请求代码如下:
  
<?php
//zhima.customer.certification.query芝麻认证查询接口
require_once 'AopSdk.php';
  
$aop = new AopClient ();
$aop->gatewayUrl = 'https://openapi.alipaydev.com/gateway.do';
$aop->appId = '';
$aop->rsaPrivateKey = '';
$aop->alipayrsaPublicKey='';
$aop->apiVersion = '1.0';
$aop->postCharset='utf-8';
$aop->format='json';
$aop->signType = 'RSA2';
$request = new ZhimaCustomerCertificationQueryRequest ();
//填写初始化返回的biz_no的值
$request->setBizContent("{\"biz_no\":\"ZM201708143000000484000579530488\"}");
$result = $aop->execute ( $request);
var_dump($result);

 返回结果如下:
  
public 'zhima_customer_certification_query_response' =>
    object(stdClass)[10]
      public 'passed' => string 'true' (length=4)
      public 'channel_statuses' => string '[{"name":"FACE","status":"PASS"}]'
      public 'identity_info' => string '{"cert_name":"沙箱账户号","cert_no":"沙箱身
      份证信息","cert_type":"IDENTITY_CARD"}' 
      public 'code' => string '10000' (length=5)
      public 'msg' => string 'Success' (length=7)
  public 'sign' => string 'xxxxxxxxxxxxxxxxxxxxxxxxxx’

 4.demo分享:
   芝麻认证-UTF-8.zip
  
如果大家在集成中遇到芝麻认证问题欢迎在帖子下面追问
aishow | 2017-08-15 10:06:28
你好,,运行认证初始化代码,直接显示数据,都没有登录,是不是你这里面没有写授权以及通过auth_code获取access_token?
我是个导演 | 2017-08-15 15:04:44
aishow:你好,,运行认证初始化代码,直接显示数据,都没有登录,是不是你这里面没有写授权以及通过auth_code获取access_token?回到原帖
这个是单纯芝麻的接口,没有关联授权接口
aishow | 2017-08-21 10:08:29
你好我要书输出开始认证(certify.php)这步获取的长链接要怎么写啊(获取长连接的参数)?因为生成二维码之前需要将长链接转换成短连接
我是个导演 | 2017-08-21 11:29:23
aishow:你好我要书输出开始认证(certify.php)这步获取的长链接要怎么写啊(获取长连接的参数)?因为生成二维码之前需要将长链接转换成短连接回到原帖
获取长连接这样写
$request = new ZhimaCustomerCertificationCertifyRequest ();
$request->setReturnUrl("https://www.taobao.com");
//填写认证初始化返回的biz_no的值
$request->setBizContent("{\"biz_no\":\"4b0c3fffd8592ac1b5a9039bf065ee23\"}");
$result = $aop->pageExecute($request,"GET");
//echo $result;
echo '<a href="'.$result.'">点这里开始认证</a>';
aishow | 2017-08-21 14:46:40
我是个导演:获取长连接这样写
$request = new ZhimaCustomerCertificationCertifyRequest ();
$request->setReturnUrl("https://www.taobao.com...
回到原帖
你这和之前一样啊。我的意思是直接得到长链接URL的值,类似于Java版的
ZhimaCustomerCertificationCertifyResponse responseIdentity = alipayClientIdentity.pageExecute(requestIdentity, "GET");
String url = responseIdentity.getBody(); //从body中获取URL
System.out.println("generateCertifyUrl url:" +url);
aishow | 2017-08-21 14:51:01
应该在下面接着写$url=$result->.......,具体是什么参数我不清楚
我是个导演 | 2017-08-21 14:52:20
aishow:你这和之前一样啊。我的意思是直接得到长链接URL的值,类似于Java版的
ZhimaCustomerCertificationCertifyResponse responseIdentity = alipayClientIdentity....
回到原帖
那你直接echo result 就可以得到url了
aishow | 2017-08-21 15:00:18
我是个导演:那你直接echo result 就可以得到url了回到原帖
直接echo $result的话,就是这个页面

我的意思是通过编码得到图片中的画红线的长链接,因为我要将长链接转换成短链接生成二维码,肯定需要这个参数的,就想我上面贴出的Java版的能获取到URL一样
aishow | 2017-08-21 15:18:08
谢谢您,搞定了
牛牛牛的牛 | 2018-05-22 12:47:18
我看文档里设置的都是return_url,但是java版本的sdk里有 notifyUrl,现在我们会遇到问题.认证成功后会到一个结果页面,如果用户直接点击里左上角的返回,我们程序就不知道这个实名有没有成功了。除非还去主动查询。而且这个返回返回的是支付宝首页,那个首页我们没办法控制
天籁 | 2018-05-22 14:04:56
牛牛牛的牛:我看文档里设置的都是return_url,但是java版本的sdk里有 notifyUrl,现在我们会遇到问题.认证成功后会到一个结果页面,如果用户直接点击里左上角的返回,我们程序就不知道这个实名有没有成功了。除非还去主动查询。而且这个返回...回到原帖
你好  芝麻认证的接口是不能传入notify_url地址的  只能传入return_url跳转页面 ,SDK是针对所有的支付宝接口的 所以封装的有传入notify_url地址的方法  但是这个地址在芝麻认证的接口是不生效的,建议您如果遇到这种没有跳转认证成功后的页面的只能调用查询接口来查询结果
友邻科技 | 2018-07-07 14:50:44
为什么跳转到支付宝之后 显示 暂未找到此功能?客户端sdk调起支付宝
天籁 | 2018-07-09 09:47:27
友邻科技:为什么跳转到支付宝之后 显示 暂未找到此功能?客户端sdk调起支付宝回到原帖
alipays://platformapi/startapp?appId=20000067&url=这个链接中的appid是固定值  你这边是有修改吗
我的回复
回复数
  13
阅读数
  2817

返回顶部