服务端部署

SDK简介

onepass服务端SDK包含网关校验和短信验证码校验两个部分,分别是对onepass两个云服务接口http://onepass.geetest.com/check_gateway.phphttp://onepass.geetest.com/check_message.php网络请求的封装,封装后以函数方法的形式供客户集成时调用,从而完成自定义接口的开发。

注:onepass包含test-button部分,请完成test-button的集成后,再开始网关和短信的集成。

开发准备

下载SDK

PHP SDK github项目地址

PHP SDK zip文件下载

SDK引入

将SDK文件夹拷贝到项目目录下

config配置

// 请到onepass后台申请可用的id与key
define("ONEPASS_ID", "7591d0fxxxxxxxxxxxxxxxxx748d936b");
define("PRIVATE_KEY", "52ad901xxxxxxxxxxxxxxxxx02f20b23");

SDK初始化

require_once dirname(dirname(__FILE__)) . '/lib/class.gmessagelib.php';
require_once dirname(dirname(__FILE__)) . '/config/config.php';
$GmSdk = new GMessageLib(ONEPASS_ID, PRIVATE_KEY);

方法说明

网关校验

  • 方法:check_gateway($process_id, $accesscode, $phone, $user_id = “test”, $ssl= false)
  • 功能:向onepass云服务发送请求,校验当前输入的手机号码与客户端网关请求时的本机号码是否一致
  • 参数说明
参数名称 参数类型 参数来源 是否必填 描述
phone String 客户端传回 用户输入的手机号
process_id String 客户端传回 本次网关校验事件的流水号
accesscode String 客户端传回 运营商为本次网关校验事件分配的token
  • 返回值
返回值类型 取值 描述
int 0 或 1 0:输入的手机号码与本机号码一致;1:输入的手机号码与本机号码不一致
  • 示例
$result = $GmSdk->check_gateway($_POST['process_id'], $_POST['accesscode'], $_POST['phone'], $ssl = true);
if ($result) {
echo '{"content":"succes","result":0}';
} else {
echo '{"content":"fail","result":1}';
}

短信验证码校验

  • 方法:check_message($process_id, $message_id, $message_number, $phone, $user_id = “test”,$ssl= false)
  • 功能:向onepass云服务发送请求,校验当前输入的验证码与用户收到的验证码是否一致
  • 参数说明
参数名称 参数类型 参数来源 是否必填 描述
phone String 客户端传回 用户输入的手机号
process_id String 客户端传回 本次验证码校验事件的流水号
message_id String 客户端传回 从客户端获取到的短信唯一编号
message_number String 客户端传回 从客户端获取到的短信验证码
  • 返回值
返回值类型 取值 描述
int 0 或 1 0:输入的验证码正确;1:输入的验证码错误
  • 示例
$result = $GmSdk->check_message($_POST['process_id'], $_POST['message_id'], $_POST['message_number'],$_POST['phone'], $ssl = true);
if ($result) {
echo '{"content":"succes","result":0}';
} else {
echo '{"content":"fail","result":1}';
}

FAQ

  1. 为什么需要接入服务端SDK?

    用户的客户端在完成了包括验证码在内的一系列通信之后,会从onepass云服务拿到token作为其唯一许可证,然后将token发送到客户端服务端,客户的服务器端使用该token向onepass云服务器查询网关或者短信验证码的验证结果,完成相关业务处理,然后通知客户端执行交互动作,这种告知客户服务端校验结果的方式既方便又安全,SDK内部含私钥校验合法性的安全逻辑,可以防篡。

  2. onepass与test-button区别

    test-button即极验验证码,属于onepass的一个部分,充当网关验证和短信验证码验证的前置步骤,完成人机验证,防止网关和短信被恶意请求,消耗客户的网关和短信请求量。因此在onepass接入时,请优先完成对test-button的接入。