淘宝客api接入步骤详解
淘宝联盟开放平台:https://open.alimama.com/#!/document
一、创建应用

推广管理>添加备案
审核成功后点击appkey申请,跳转到阿里开放平台应用管理

查看appkey appsecret

下载sdk,注意,sdk中只有拥有api权限的文件

设置回调url:

api权限申请:一是淘宝联盟开放平台功能中心,一是阿里开放平台


阿里开放平台申请权限,一般填写理由后就能通过

淘宝客api文档:

sessionkey刷新,第一次需手动获取,授权介绍:https://open.taobao.com/doc.htm?docId=105&docType=1#s2
/**
* 获取 更新sessionkey
*
* @return mixed
*/
public function refreshSessionKey()
{
$sessionKeyData = file_get_contents(app_path('Lib\Alimm\sessionkey.json'));
if (empty($sessionKeyData)) {
} else {
$sessionKeyData = json_decode($sessionKeyData, true);
//sessionkey是否过期过期前一天更新session
if ($sessionKeyData['expires_in'] * 1000 + $sessionKeyData['ts'] < self::getMillisecond()){
$sign = $this->encodeHexString($this->md5Hex(getSortParams([
'appkey' => $this->appkey,
'refresh_token' => $sessionKeyData['refresh_token'],
'sessionkey' => $sessionKeyData['top_session'],
]).$this->secretKey));
$url = "http://container.open.taobao.com/container/refresh?appkey=$this->appkey&refresh_token={$sessionKeyData['refresh_token']}&sessionkey={$sessionKeyData['top_session']}&sign=".strtoupper($sign);
$result = file_get_contents($url);
$result = json_decode($result, true);
$result['ts'] = self::getMillisecond();
file_put_contents(app_path('Lib\Alimm\sessionkey.json'), json_encode($result));
return $result['top_session'];
} else {
return $sessionKeyData['top_session'];
}
}
}
/**
* 16进制转string拼接
* @author Lerko
* @dateTime 2018-01-25T10:18:31+0800
* @param array $bytes [description]
* @return [type] [description]
*/
public function encodeHexString(array $bytes){
$LOWER=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
$length=count($bytes);
$charArr=[];
foreach ($bytes as $value) {
$value=intval($value);
$charArr[]=$LOWER[ $this->uright(0xF0 & $value,4) ];
$charArr[]=$LOWER[ 0x0F & $value ];
}
return implode("",$charArr);
}
/** php 无符号右移 */
public function uright($a, $n)
{
$c = 2147483647>>($n-1);
return $c&($a>>$n);
}
/**
* 模拟DigestUtils.md5
* @author Lerko
* @dateTime 2018-01-25T09:28:33+0800
* @param [string] $string 加密字符
* @return [array] 加密之后的byte数组
*/
public function md5Hex($string)
{
return unpack("c*", md5($string,true));
}
/**
* 拼接签名字符串
*
* @param array $param
* @return string
*/
public function getSortParams($param = [])
{
unset($param['sign']);
ksort($param);
$signstr = '';
if (is_array($param)) {
foreach ($param as $key => $value) {
if ($value == '') {
continue;
}
$signstr .= $key .$value;
}
}
return $signstr;
}
/**
* 获取13位时间戳
*
* @return string
*/
private static function getMillisecond()
{
list($t1, $t2) = explode(' ', microtime());
return sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000);
}
首次获取:http://container.api.taobao.com/container?appkey={appkey}
回调:
public function callback()
{
$top_appkey = $_GET['top_appkey'];
$top_parameters = $_GET['top_parameters'];
$top_session = $_GET['top_session'];
$top_sign = $_GET['top_sign'];
$secret = '61dd8bb9c0b78b175faad8b077c232e3'; // 别忘了改成你自己的
$md5 = md5( $top_appkey . $top_parameters . $top_session . $secret, true );
$sign = base64_encode( $md5 );
if ( $sign != $top_sign ) {
echo "signature invalid.";
exit();
}
$parameters = array();
parse_str(base64_decode( $top_parameters ), $parameters );
$parameters['top_session'] = $top_session;
file_put_contents(app_path('Lib\Alimm\sessionkey.json'), json_encode($parameters));
}
二、私域用户管理及订单查询接口权限申请
申请地址:https://survey.taobao.com/apps/zhiliao/0JpI9eizU
填写申请后下周三审核,周四可在淘宝联盟.生态伙伴(https://www.alimama.com/member/login.htm?forward=http%3A%2F%2Fpub.alimama.com%2Fthird%2Fmanage%2Frecord%2Fstep.htm%3Fcategorie%3D0%26step%3D1)查看
通过后会出现,渠道管理,会员运营管理菜单,

阿里开放平台(https://my.open.taobao.com/app/router.htm?spm=a219t.11817172.0.de8776465.6f536a15Ksuc5y&app_id=12058768),查看应用是否已拥有相关api权限,如果没看到接口,多等一等再查看就有了

更多推荐

所有评论(0)