WorkPro 手册

什么是认证码

认证码是接口访问的一个安全验证码

认证码生成规则:SHA256(应用ID + 应用密钥 + 时间戳)

接入概述

与WorkPro集成,开发者需要按照以下步骤完成:
  1. 添加接入商
  2. 编写接口调用函数
  3. 根据接口文档实现业务逻辑

第一步:添加接入商,获取接入ID与密钥

第二步:编写接口调用函数(PHP代码示例)


/*
 * 声明
 * 所有的结果返回格式是 status data err_code err_msg
 * status 0 错误  1 成功
 * data 返回结果数据
 * err_code 错误码
 * err_msg 错误信息
 * */

class IMSdk 
{ 
	//开发者需要这里----------------
	private $appid = 'xxxx' ;
	private $appsecret = 'xxxxxxxxxxxxxxx' ;
	private $uid = '1' ;
	private $rest_site = 'http://localhost:8042' ;


	/**
	 * 初始化
	 */
	public function __construct(){

	}


	/**
	 * 请求接口
	 * @param unknown $module 模块名称
	 * @param unknown $method 方法
	 * @param unknown $param 参数
	 * @param unknown $timeout 超时时间
	 * @return {status:0/1,data:'',err_code:0,err_msg:''}
	 */
	public function getHttp($module,$method,$params = [],$timeout = 10){
		
		//URL
		$url = $this->rest_site . "/api/$module/$method.html";
		
		//HEADER
		$timestamp = time();
		$headers = [
			'appid:'.$this->appid,
			'appsecret:'.$this->appsecret,
			'timestamp:'.$timestamp,
			'authen:'.$this->getAuthen($timestamp),
			'uid:'.$this->uid
		];

		//POSTFIELD
		$data = '' ;
		foreach($params as $key=>$value){
			$data .= ($data == ""?"":"&") .$key . "=" . $value ;
		}

		//SUBMIT
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
		curl_setopt($ch, CURLOPT_POST, 1);//POST
		curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);//连接超时
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //不返回状态
		curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);//执行超时
		$res = curl_exec($ch);
		curl_close($ch);
		return $res;
	}
	
 
	
	/**
	 * 得到认证码
	 * @param unknown $timestamp
	 * @return string
	 */
	private function getAuthen($timestamp){
		$str = $this->appid . $this->appsecret . $timestamp ;
		return hash('sha256',$str);
	}

} 

		

第三步:根据接口文档实现业务逻辑

//引入Sdk文件
require 'IMSdk.class.php';

//实例化SDK
$imsdk = new IMSdk();

$module = 'users';
$method = 'search';
$params = ['key'=>'1'];
$res = $imsdk->getHttp($module,$method,$params);

header("content-type:application/json;chartset=uft-8");
ob_clean();
echo($res);
die();
		

示例代码下载:下载示例代码