【淘宝联盟开放平台】php调用淘宝客Api生成淘口令

码农天地 -
【淘宝联盟开放平台】php调用淘宝客Api生成淘口令
开发准备

需要开通淘宝联盟并获得相关的Api接口权限
淘宝联盟开放平台:https://open.alimama.com/

具体的申请步骤自己另外学习和了解,这里主要是讲解如何调用Api接口的,申请的步骤也挺麻烦挺多东西搞的。

申请成功后的样子大概就是这样:

开发文档

我们要熟读开发文档,这是开发流程
https://open.taobao.com/doc.h...

调用步骤

1、拼接请求参数
2、签名
3、拼接请求链接
4、发起请求

调用参数说明

1、请求参数
根据淘宝开放平台的Api文档可知,请求的链接是
http://gw.api.taobao.com/router/rest
即所有的参数都POST到这个链接或者使用GET方法进行请求即可。

公共参数:

method(Api名称)app_key(开放平台的Key)session(session)timestamp (时间戳,2020-09-11 12:00:59)format(数据返回格式,json或者xml)v(版本号,可传2.0)sign_method(签名方法,md5)

淘口令生成Api:taobao.tbk.tpwd.create(淘宝客-公用-淘口令生成)

淘口令请求必传参数:

text(口令弹窗内容)url(口令跳转链接)

按ASCII顺序排序拼接参数名与参数值

app_key12345678fieldsnum_iid,title,nick,price,numformatjsonmethodtaobao.item.seller.getnum_iid11223344sessiontestsign_methodmd5timestamp2016-01-01 12:00:00v2.0

生成签名

假设app的secret为helloworld,则签名结果为:hex(md5(helloworld+按顺序拼接好的参数名与参数值+helloworld)) = “66987CB115214E59E6EC978214934FB8”

构建HTTP请求URL
将所有参数名和参数值采用utf-8进行URL编码(参数顺序可随意,但必须要包括签名参数),然后通过GET或POST(含byte[]类型参数)发起请求。

例如:

http://gw.api.taobao.com/router/rest?method=taobao.item.seller.get&app_key=12345678&session=test&timestamp=2016-01-01+12%3A00%3A00&format=json&v=2.0&sign_method=md5&fields=num_iid%2Ctitle%2Cnick%2Cprice%2Cnum&num_iid=11223344&sign=66987CB115214E59E6EC978214934FB8
下面是我的代码
<?php
// 返回json格式
header("Content-type:application/json");

// app_key
$app_key = "填写你的";
// app_secret
$app_secret = "填写你的";

// 对uland.taobao.com链接进行解码
$urlDecode = urlDecode("https://uland.taobao.com/coupon/edetail?e=4bI0NgAcLX8E%2BdAb1JoOOjtaDeTCo3PUqDDkvb3q3IBUm%2Fg8xRLmNgq491a%2BRSPK6by1%2B2z8nqxZytX83D81bq06j9rExVodDfqEFBOhTcwqFY%2FHJzT7l7NbGDWR2SFGkgK4shmq4jnYQoT%2F5J6mnX4Pl%2BZxRCyGmKoWioKw4rz9zkxwTC9%2B9S3%2FM4lAwO%2BXrOugqOzy%2BV3F8WVlIJ68AEy5otPERvyn9J6TdzmyvhpDLsaEUNwvh%2BzlpZNJjeBYonv6QcvcARY%3D&traceId=0b51143615997926947266642e2629&ptl=floorId%3A33513&traffic_flag=lm&scm=20140618.1.01010001.s101c6&spm=a21wq.9116673.discovery.pageNum0_13&union_lens=lensId%3AAPP%401599792686%406374db9b-01b0-4a25-8ee3-578a291a99b7_622814146947%40043KSdARX36Py4uHGGwUBqcR&un=e06ed28165474e368a195baaa22d8f6a&share_crt_v=1&ut_sk=1.utdid_null_1599792694866.TaoPassword-Outside.lianmeng-app&sp_tk=THJ0MmNlQmpTRWI=&cpp=1&shareurl=true&short_name=h.VCXko6T&bxsign=scd1599792716655599149b5cbf77ff9f0fac572a35a695b");

// 对uland.taobao.com链接进行编码
$urlEncode = urlEncode($urlDecode);

// 拼接签名所需的字符串
$signStr = "app_key".$app_key."formatjsonmethodtaobao.tbk.tpwd.createsession6100a066e9c87a1e921e6d476485b4d2176aee87340bf85724156739sign_methodmd5textlikeyuntimestamp2020-09-11 23:59:59url".$urlDecode."v2.0";

// md5签名算法需要前后拼接app_secret
$signText = $app_secret.$signStr.$app_secret;

// 签名,返回的是大写的32位16进制字符串
$sign = strtoupper(MD5($signText));

// 拼接请求链接
$GetUrl = "http://gw.api.taobao.com/router/rest?method=taobao.tbk.tpwd.create&app_key=".$app_key."&session=6100a066e9c87a1e921e6d476485b4d2176aee87340bf85724156739&timestamp=2020-09-11+23%3a59%3a59&format=json&v=2.0&sign_method=md5&text=likeyun&url=".$urlEncode."&sign=".$sign;

// 发起Get请求
echo file_get_contents($GetUrl);

?>
请求后返回的数据

注意事项

1、uland.taobao.com原链接一开始是有部分符号已经编码过的,我们要进行解码,获得原始未解码的链接
2、在签名的时候uland.taobao.com链接是使用未编码的链接进行签名
3、HTTP请求的链接是需要进行编码的,我们对已经解码的uland.taobao.com链接进行编码后才能正常发起,否则会报签名错误。
4、时间戳格式不是time()函数的生成的字符串,而是2020-09-11 12:00:59这样的格式,在HTTP请求链接里面也是要对时间戳进行编码。

Author:TANKING
Date:2020-09-11
Web:http://www.likeyun.cn/
WeChat:face6009

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

php淘宝客淘宝联盟淘宝开放平台淘口令生成

扩展阅读

加个好友,技术交流

1628738909466805.jpg