本文将简单介绍下京东联盟、京东宙斯两个平台,以及如何利用京东宙斯平台的京东联盟API来快速获取自定义推广链接。

关于京东联盟

京东联盟(去官网看看)是一个CPS模式的营销平台,我们可以使用自己的网站放置联盟的推广链接为京东推销产品,当用户在我们的网站上点击了某个推广链接,并促成了真实的订单,那么我们将获得一定的佣金。

申请京东联盟的条件是必须有一个在国内的备案网站,这个是重点哦。使用京东帐号登录后,填写网站信息,等待审核即可。

关于京东宙斯

京东宙斯(去官网看看)是一个京东提供的API接口平台(基于oauth2验证),通过使用API,我们可以自己创建各种网站、无线应用来读取京东商品信息、活动信息等。商家可以通过API将自己的信息系统嵌入京东的各种服务系统。

本文将介绍如何使用京东宙斯中的京东联盟API来获取京东联盟自定义推广链接。

京东联盟自定义推广链接

自定义推广链接,可以使用京东上各种商品,各种活动页面的链接,其范围非常的广泛和实用。

在联盟管理界面中,我们可以看到生成自定义推广链接的操作非常简单:

自定义推广链接支持的链接有:京东首页、商品detail页、活动页面、店铺页面。

点击获取代码按钮后,会生成一个union开头的链接,我们把这个链接放置在网站上即可(这个链接只能在注册的网站上使用,通过其他方式打开的无效)。

我们自己可以点击这个链接,当我们自己在京东上购买商品时,也能获得佣金哦!(详细信息请看联盟帮助)

在京东宙斯平台注册为京东开发者

我们可以在京东联盟管理界面获取推广链接,但是每次都要登录,非常的繁琐!幸好,京东开放了京东联盟API,我们可以使用代码来自动获取!

首先,先用您的京东帐号登录京东宙斯平台(打开官网),然后填写开发者基本信息,即可完成注册开发者(不需要认证开发者),接着授权服务页面申请京东宙斯服务。

完成后会显示您已获得授权的服务:

创建一个应用

当我们成为注册开发者,授权京东宙斯服务后,我们需要创建一个应用,因为使用API是需要授权(access_token)的,而这个token是由我们创建的应用的APP key和App Secret生成,我们对API的请求记录都会记录在这个应用下面。

在创建应用界面,我们选择【买家】【无线应用】:

完成后,我们还需要完善下应用信息,填写下回调地址,回调地址的作用是在获取访问API的授权码(accecc_token)时的一个中间地址:

下一步,然后提交审核,应用的状态就变成上线运行中了,这时我们就可以正式开始使用应用证书中的APP key来获取Token了!

使用APPkey和APPSecrect获取Token

这里,我使用的是第一种:Authorization Code来获取Token,好处是Token有效期能保持1年时间,每天30万次请求!我们现在只需要获取一次即可!

由于是基于Oauth2.0,所以流程很简单,先使用APPKey获取一个Code,然后结合Code再获取Token!

Code的获取是使用京东的登录页面,输入您的京东帐号信息后,得到授权之后会回到我们的回调地址上,此时回调地址上会带有一个code参数,这个参数就是我们需要的!

获取Code的请求(GET请求)链接:

https://oauth.jd.com/oauth/authorize

有几个参数需要带上:

参数名称

参数选项

描述

response_type

必须

此流程下,该值固定为code

client_id

必须

即创建应用时的Appkey(从JOS控制台->管理应用中获取)

redirect_uri

必须

即应用的回调地址,必须与创建应用时所填回调页面url一致

state

可选

状态参数,由ISV自定义,颁发授权后会原封不动返回

scope

可选

权限参数,API组名串。多个组名时,用","分隔,目前支持参数值:read

view

可选

移动端授权,该值固定为wap;非移动端授权,无需传值

整理后完整的请求链接为:

https://oauth.jd.com/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID& redirect_uri=YOUR_REGISTERED_REDIRECT_URI

只需要修改下client_id(即APP Key)和redirect_uri(回调地址,必须和创建应用时写的一样)即可。

使用浏览器访问这个链接,会定向到登录页面:

登录成功后,会跳转到我们写的回调地址上,此时我们可以获得code参数值!

现在我们可以使用Code值来获得token了。

获取token的请求链接:

https://oauth.jd.com/oauth/token

参数有:

参数名称

参数选项

描述

grant_type

必须

授权类型,此流程下,该值固定为authorization_code

code

必须

授权请求返回的授权码

redirect_uri

必须

应用的回调地址,必须与创建应用时所填回调页面url一致

client_id

必须

即创建应用时的Appkey(从JOS控制台->管理应用中获取)

client_secret

必须

即创建应用时的Appsecret(从JOS控制台->管理应用中获取)

state

可选

状态参数,由ISV自定义,颁发授权后会原封不动返回

整理后完整的请求链接为:

https://oauth.jd.com/oauth/token?grant_type=authorization_code&client_id=YOUR_CLIENT_ID&

redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=GET_CODE&client_secret= YOUR_APP_SECRET 使用浏览器访问这个链接,返回的是标准的json格式:

{

"access_token": "您的Token值",

"code": 0,

"expires_in": 31622400,

"refresh_token": "4a07031d-5122-4100-a60d-4ab982a55307",

"time": "1435499129281",

"token_type": "bearer",

"uid": "您的京东帐号ID",

"user_nick": "您的京东帐号昵称"

} 自此一个理论流程完成了!现在我们用php自动下,即获取code后自动发送获取token的请求,然后显示token内容。

PHP实现自动获取token的简单Demo

直接看代码把,非常简单哦,一个php文件:

$response_type = "code";

$grant_type = "authorization_code";

$client_id = "这里改为您的APP Key";

$client_secret = "这里改为您的APP Secret";

$redirect_uri = "这里改为你的回调地址";

$state = "jdunion";

$codeurl = 'https://oauth.jd.com/oauth/authorize';

$tokenurl = "https://oauth.jd.com/oauth/token?";

$code = $_GET["code"];

if ($code != "")

{

$fields = [

"grant_type" => urlencode($grant_type),

"client_id" => urlencode($client_id),

"redirect_uri" => urlencode($redirect_uri),

"code" => urlencode($code),

"state" => urlencode($state),

"client_secret" => urlencode($client_secret)

];

$fields_string = "";

foreach($fields as $key=>$value) {

$fields_string .= $key.'='.$value.'&';

}

rtrim($fields_string, '&');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $tokenurl.$fields_string);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);

curl_close($ch);

echo "Response:
".mb_convert_encoding($result,"UTF-8","GBK");

}

else

{

header("Location: ".$codeurl."?response_type=".$response_type."&client_id=".$client_id."&redirect_uri=".$redirect_uri."&state=".$state);

} 您只需要将开头的几个值修改为自己的,然后访问这个php文件。

使用京东联盟API获取自定义推广链接

得到token后,妥善保管,现在开始的每个API请求都需要带上这个token值。

首先,我们要知道的是,访问API有个BaseUrl,这是整个宙斯(JOS)平台所有API的主链接,只是不同API的参数不同:

https://api.jd.com/routerjson JOS API里面有两种参数大类,一个是系统参数,即APP Key、Token这些验证信息,这是所有API都通用的,另一个是应用参数,即不同API它有自己的参数列表。

系统参数有下面这些:

名称

类型

必须

描述

method

String

API接口名称

access_token

String

采用OAuth授权方式为必填参数

app_key

String

应用的app_key

sign

String

签名

timestamp

String

时间戳,格式为yyyy-MM-ddHH:mm:ss,例如:2011-06-16 13:23:30。京东API服务端允许客户端请求时间误差为6分钟

v

String

API协议版本,可选值:2.0.

其中的method参数为API接口的名称,京东联盟API接口的名称是:

jingdong.service.promotion.getcode

sign参数是对完整的请求链接md5加密后的字符串,加密规则如下:

所有参数名称按字母先后排序

将参数名与参数值拼起来,去掉&和=两个字符

在第2步中得到的字符串两端拼上App Secret值

对第3步中得到的字符串计算md5

把计算得到的MD5值转为大写形式

最后这个大写的MD5值即为我们要使用的sign参数的值

京东联盟API接口的应用参数有下面这些:

名称

类型

必须

示例值

描述

promotionType

Number

7

推广类型 1:商品推广,2:店铺推广,3:专柜推广,4:频道推广,7:自定义推广 系统目前暂时只支持自定义推广。

materialId

String

http://www.jd.com

物料ID 1、推广类型是商品推广,推广物料ID对应着”skuid” 2、推广类型为店铺推广,推广物料ID对应着”shopID” 3、推广类型为频道页推广,推广物料ID对应着”频道页类目ID” 4、推广类型为自定义推广时,则该物料ID对应着”着陆页URL” 5、推广类型为专柜推广时,则该物料ID对应着“类目ID_类目ID_类目ID…”

unionId

Number

联盟ID(京东客ID)

subUnionId

String

子联盟Id(不能超过16个字符)

siteSize

String

推广位尺寸,具体尺寸见FQA

siteId

String

推广位ID

channel

String

推广渠道 PC:pc推广,WL:无线推广

webId

String

网站ID

extendId

String

扩展ID

ext1

String

扩展字段1

promotionType参数这里目前只支持自定义推广,值为7。

materiaId参数为我们需要转换的京东网站链接(推广类型4,自定义推广),比如京东首页。

unionID参数为您的京东联盟帐号的ID,这个可以登录京东联盟网站后查看到。

webId参数为您在京东联盟网站注册的网站编号,也可以在联盟网站上找到。

知道这些参数后,我们需要开始构建请求的链接了。

首先应用参数在使用时需要构建成json格式拼接在BaseUrl上,使用的参数名叫:

360buy_param_json php实例:

$_360buy_param_json =

'{"channel":"'.$channel.'","materialId":"'.$sourceurl.'","promotionType":'.$type.',"unionId":"'.$unionId.'",

"webId":"'.$webId.'"}';

现在根据以上系统和应用参数信息,拼接成完整的请求链接,使用浏览器请求即可,返回的格式是json。

下面是我写好的php代码:

$sourceurl = $_GET["u"];

if($sourceurl == ""){

echo "error:请输入url参数";

exit();

}

$method = "jingdong.service.promotion.getcode";

$channel = "PC";

$type = 7;

$unionId = "您的京东联盟ID";

$webId = "您在京东联盟注册的网站的ID";

$token = "您的Token";

$appkey = "您的APPKey";

$appSecret = "您的APPSecret";

$v = "2.0";

$time = date('Y-m-d H:i:s',time());

$baseurl = "https://api.jd.com/routerjson?";

//应用参数,json格式

$_360buy_param_json =

'{"channel":"'.$channel.'","materialId":"'.$sourceurl.'","promotionType":'.$type.',"unionId":"'.$unionId.'",

"webId":"'.$webId.'"}';

//系统参数

$fields = [

"360buy_param_json" => urlencode($_360buy_param_json),

"access_token" => urlencode($token),

"app_key" => urlencode($appkey),

"method" => urlencode($method),

"timestamp" => urlencode($time),

"v" => urlencode($v)

];

$fields_string = "";

//用来计算md5,以appSecret开头

$_tempString = $appSecret;

foreach($fields as $key=>$value)

{

//直接将参数和值拼在一起

$_tempString .= $key.$value;

//作为url参数的字符串

$fields_string .= $key.'='.$value.'&';

}

//最后再拼上appSecret

$_tempString .= $appSecret;

//计算md5,然后转为大写,sign参数作为url中的最后一个参数

$sign = strtoupper(md5($_tempString));

//加到最后

$fields_string .= ("sign=".$sign);

//最终请求的url

$link = $baseurl.$fields_string;

//发送get请求

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $link);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);

curl_close($ch);

//转换为json

$jsonArray = json_decode($result,true);

$queryjs_result= $jsonArray["jingdong_service_promotion_getcode_responce"]["queryjs_result"];

$url = json_decode($queryjs_result,true);

echo urldecode($url["url"]);

?> 修改文件中的几个参数值,然后访问这个php文件,带上参数:u=京东链接(比如u=http://www.jd.com)。

最后页面将直接输出union打头的推广链接。

结束

到目前为止,我们已经有了一个php文件,通过参数u=京东链接形式,即可快速的得到推广链接。

注意,得到推广链接,直接访问它是没有任何效果的,需要将链接添加在京东联盟注册的网站中去,从这个网站点击跳转才能生效。

tips:

由于OSChina的OpenAPI在处理content参数时会自动过滤img标签,所以无法显示图片,详见。

php对接京东宙斯平台,利用京东联盟API获取自定义推广链接相关推荐

  1. 利用京东联盟API获取自定义推广链接

    2019独角兽企业重金招聘Python工程师标准>>> 本文将简单介绍下京东联盟.京东宙斯两个平台,以及如何利用京东宙斯平台的京东联盟API来快速获取自定义推广链接. 关于京东联盟 ...

  2. php京东宙斯平台授权源码,好京客云平台授权京东宙斯

    好京客官网 www.haojingke.com * * * * * 注册好好京客之后第一件时间就是授权京东云平台 ![](https://box.kancloud.cn/aae59bcc36caf6c ...

  3. 京东宙斯平台使用方法(accesstoken,appkey,appsecret参数和SDK的获取)

    1.注册成为开发者 链接:https://dev.jd.com/ 2.创建应用 3.获取appsrecet和appkey,SDK(获取) 新建应用之后在左边应用证书栏位可以查看到appkey,apps ...

  4. java获取京东token_京东宙斯平台使用方法(accesstoken,appkey,appsecret参数和SDK的获取)...

    1.注册成为开发者 链接:https://dev.jd.com/ 2.创建应用 3.获取appsrecet和appkey,SDK(获取) 新建应用之后在左边应用证书栏位可以查看到appkey,apps ...

  5. 完整的京东联盟自定义推广链接生产程序

    2019独角兽企业重金招聘Python工程师标准>>> 前言 前文<利用京东联盟API获取自定义推广链接>介绍了如何使用联盟API获取自定义推广链接. 这里我做一个小页面 ...

  6. 记录对接京东宙斯API -- 发布商品

    记录对接京东宙斯API -- 发布商品 1. SDK的问题 2. 提交工单, 反应不及时的问题(纯属吐槽, 勿怪!!!). 3. 对接同步SOP类型的商品信息API 3.1. 通过类目和属性类型,获取 ...

  7. 京东宙斯杯创新应用大赛 - 作品投票排名

    京东宙斯杯创新应用大赛 - 作品投票排名   http://yuncode.net/appjcloudvote.html

  8. 百度地图利用位置提供服务器,利用百度地图API获取当前位置信息的实例

    利用百度地图API可以做很多事情,个人感觉最核心也是最基础的就是定位功能了.这里分享一个制作的JS可以实现登录网页后定位: var map; var gpsPoint; var baiduPoint; ...

  9. 京东宙斯php版本sdk不能用_多主机平台玩家的福音,北通宙斯T6精英版体验测评...

    「链接」 熟悉枫叔的都知道,作为一个游戏圈的老油条,虽然阅游无数,但论操作还真不能以大神自居.为了便于测评游戏截图.录屏的便捷,往往主机游戏但凡推出了PC端,都会选择PC来体验.不过,这也导致很多首发 ...

最新文章

  1. Django入门之开发环境搭建1.1
  2. 比起睡觉,我更喜欢刷巨详细的Java枚举类,这是来自猿人的自觉呀
  3. 一种形式的两个提交按钮
  4. java与c语言工作量对比比例,对比平台-- C ++与Java之间的差异
  5. Codevs 1689 建造高塔
  6. java 挥发注解_Java的挥发性修饰符
  7. win10-PC端无法输入中文
  8. 完美解决Python与anaconda之间的冲突问题,你值得拥有
  9. 解决无法使用locate命令的方法
  10. OSX EI Captain中安装Pear等三方软件不成功的解决方法
  11. C#里的三种定时器类型
  12. PDF417条码生成类
  13. 计算机课程设计家庭,家庭无线局域网组建-课程设计.doc
  14. Machine Learning-L13-频繁模式挖掘
  15. html img 能显示psd吗_psd变成html
  16. Bootstrap设计可响应式的移动网页
  17. 从程序关闭Windows。
  18. 丰田chr内外循环怎么区分_从奕泽/C-HR的这些细节 我已经看出南北丰田的差异在哪里...
  19. HPatches数据集(图像匹配)---2关于评估代码的解释---和python画出结果
  20. EMNLP2021论文:元学习大规模多标签文本分类

热门文章

  1. 服务器和交换机物理连接_「网络安全」网络设备篇(6)——四层交换机
  2. 微信java tools_微信开发工具包(weixin-java-tools)
  3. MapReducer Counter计数器的使用,Combiner ,Partitioner,Sort,Grop的使用,
  4. Excel编程 VBA环境搭建(一)
  5. 【运营小卖部】如何玩转社群?社群运营教程
  6. vue+ts的书写规范
  7. 机械转行嵌入式成功上岸!
  8. 著名英文谚语(珍藏版)
  9. 微信默认表情符号的代码对照表
  10. 高精度地图2019-2020年或可落地