<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/post//</link>
<title><![CDATA[接入淘宝客/拼多多(多多客)/京东优惠券推广]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[编程杂谈]]></category>
<pubDate>Fri, 25 Oct 2019 02:58:43 +0000</pubDate> 
<guid>https://www.heckjj.com/post//</guid> 
<description>
<![CDATA[ 
	为方便大家接入这种第三方电商平台推广也方便自己以后查看参考：<br/><br/>开发配置：java、jdk1.8、idea、springboot、windows<br/><br/><span style="font-size: 18px;"><strong>一、拼多多</span></strong><br/><br/>1、进入拼多多开放平台 http://open.pinduoduo.com/#/index 注册为开发者<br/><a href="https://img-blog.csdnimg.cn/2018111516414529.png" target="_blank"><img src="https://img-blog.csdnimg.cn/2018111516414529.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="712" height="333"/></a><br/><br/>2、进入控制台，创建一个应用，选择多多客联盟(也可选择其它)，等待审核通过。<br/><a href="https://img-blog.csdnimg.cn/20181115164303974.png" target="_blank"><img src="https://img-blog.csdnimg.cn/20181115164303974.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="523" height="315"/></a><br/><a href="https://img-blog.csdnimg.cn/20181115165144177.png" target="_blank"><img src="https://img-blog.csdnimg.cn/20181115165144177.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="540" height="207"/></a><br/><br/>3、审核通过之后能够拿到client_id和client_secret<br/><br/>4、(PS：因我本地maven没安装，因此只能用线上)在pom.xml中引入配置<br/><textarea name="code" class="xml" rows="15" cols="100">
&lt;dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;javax.websocket&lt;/groupId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;javax.websocket-client-api&lt;/artifactId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;1.0&lt;/version&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.glassfish.tyrus.bundles&lt;/groupId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;tyrus-standalone-client&lt;/artifactId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;1.13.1&lt;/version&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;com.fasterxml.jackson.core&lt;/groupId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;jackson-databind&lt;/artifactId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;2.9.6&lt;/version&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;commons-codec&lt;/groupId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;commons-codec&lt;/artifactId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;1.10&lt;/version&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;log4j-core&lt;/artifactId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;2.11.1&lt;/version&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;log4j-api&lt;/artifactId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;2.11.1&lt;/version&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;log4j-slf4j-impl&lt;/artifactId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;2.11.1&lt;/version&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;httpclient&lt;/artifactId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;4.5.3&lt;/version&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;commons-io&lt;/groupId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;commons-io&lt;/artifactId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;2.5&lt;/version&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;com.fasterxml.jackson.core&lt;/groupId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;jackson-databind&lt;/artifactId&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;2.8.11&lt;/version&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;
</textarea><br/><br/><a href="https://img-blog.csdnimg.cn/20181115165901290.png" target="_blank"><img src="https://img-blog.csdnimg.cn/20181115165901290.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="370" height="225"/></a><br/><br/>具体配置可以参考  拼多多开发者文档-&gt;sdk指南，有明确标识有哪些jar包 <br/><br/>然后先点击某个api，拉到最下面点击api工具测试，先测试是否可用(有的没有权限，需要申请)<br/><br/>最后在控制器里面进行测试调用：拼多多是post请求，并且有签名。看官网的教程是有类的，可以直接set设置值，但不知道为啥引入jar包之后还是不能用。就只能手动拼接。<br/><br/>1、生成签名，签名的规则在sdk指南中有明确说明，对于数据进行首字母排序，并在数据的首尾加上client_secret<br/><br/>      本人用了两种方式：第一，最原始的，自己看有哪些参数，然后一个一个拼接。<br/><textarea name="code" class="java" rows="15" cols="100">
//拼接签名
String signD = pddUtil.client_secret +&quot;client_id&quot;+ pddUtil.client_id + &quot;data_typeJSON&quot;
 + &quot;sort_type0&quot; +&quot;timestamp&quot;+timestamp+ &quot;typepdd.ddk.goods.search&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot;with_coupontrue&quot;+pddUtil.client_secret;
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//生成签名
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String encode = MD5Util.encode(signD);
</textarea><br/>第二种采用map，然后转为string<br/><br/><textarea name="code" class="java" rows="15" cols="100">
//获得时间戳(10位)
long timeStampSec = System.currentTimeMillis()/1000;
String timestamp = String.format(&quot;%010d&quot;, timeStampSec);
 
//设置参数
Map&lt;String, String&gt; map = new TreeMap();
map.put(&quot;type&quot;, &quot;pdd.ddk.goods.search&quot;);
map.put(&quot;data_type&quot;, &quot;JSON&quot;);
map.put(&quot;timestamp&quot;, timestamp);
map.put(&quot;client_id&quot;, pddUtil.client_id);
map.put(&quot;sort_type&quot;, &quot;0&quot;);
map.put(&quot;with_coupon&quot;, &quot;true&quot;);
 
//转换数据为String
StringBuilder sb = new StringBuilder(pddUtil.client_secret);//应规则首尾加上client_secret
 
for (Map.Entry entry : map.entrySet()) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;String name = (String) entry.getKey();
&nbsp;&nbsp;&nbsp;&nbsp;String value = (String) entry.getValue();
 
&nbsp;&nbsp;&nbsp;&nbsp;//检测参数是否为空
&nbsp;&nbsp;&nbsp;&nbsp;if (this.areNotEmpty(new String[]&#123;name, value&#125;)) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(name).append(value);
&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&#125;
sb.append(pddUtil.client_secret);//应规则首尾加上client_secret
 
//进行签名
String sign = MD5Util.encode(sb.toString());
 
//验证是否为空
public static boolean areNotEmpty(String[] values) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;boolean result = true;
&nbsp;&nbsp;&nbsp;&nbsp;if ((values == null) &amp;#124;&amp;#124; (values.length == 0))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result = false;
&nbsp;&nbsp;&nbsp;&nbsp;else &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (String value : values) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result &amp;= !isEmpty(value);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;return result;
&#125;
</textarea><br/><br/>2、发送请求，正式请求地址：https://gw-api.pinduoduo.com/api/router<br/><textarea name="code" class="java" rows="15" cols="100">
//post参数
String param = &quot;type=pdd.ddk.goods.search&amp;data_type=JSON&amp;timestamp=&quot;+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timestamp +&quot;&amp;client_id=&quot;+pddUtil.client_id+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&amp;sort_type=0&amp;with_coupon=true&amp;opt_id&quot;+id+&quot;&amp;sign=&quot;+encode;
 
//发起请求
String s = api.sendPost(pddUtil.getURL(), param);
 
//打印结果
return s;
</textarea><br/><br/><a href="https://img-blog.csdnimg.cn/20181115171709146.png" target="_blank"><img src="https://img-blog.csdnimg.cn/20181115171709146.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="593" height="297"/></a><br/><br/>结果：到此拼多多结束<br/>最后记录，推广采用优惠券，调用接口为：<br/><br/>1、pdd.ddk.goods.search <br/>2、pdd.ddk.goods.promotion.url.generate<br/>即可最后结果为 <br/><br/><a href="https://img-blog.csdnimg.cn/2018111517200151.png" target="_blank"><img src="https://img-blog.csdnimg.cn/2018111517200151.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="213" height="323"/></a><br/><br/><br/>拼多多接口有返回数据，对应的可以拉起拼多多或者就网页等可以自行选择<br/><br/>做了工具类，经过工具类就可以直接这样：<br/><br/><a href="https://img-blog.csdnimg.cn/20181130100516983.png" target="_blank"><img src="https://img-blog.csdnimg.cn/20181130100516983.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="695" height="695"/></a><br/><br/>不需要去自己拼接，不需要注意参数的顺序，工具类已经上传。<br/><br/>PS：若是注册的多多客，应用是多多客(即我文章这种，当你应用审核通过之后拿到了client_id以后，需要到http://jinbao.pinduoduo.com/  多多进宝去绑定client_id)否则没有权限调用API<br/><br/><a href="https://img-blog.csdnimg.cn/20181115173748277.png" target="_blank"><img src="https://img-blog.csdnimg.cn/20181115173748277.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="566" height="202"/></a><br/><br/><br/><span style="font-size: 18px;"><strong>二、淘宝</span></strong><br/><br/>1、进入  淘宝开发者平台 http://open.taobao.com/  进行开发者注册<br/><br/>2、进入创建应用，创建成功能够得到appkey和appsecret<br/><br/>3、下载sdk，进入控制台，进入其中一个应用的SDK下载页面，选择自己语言的sdk下载<br/><br/>4、Java下载出来就俩jar包加上一个空文件夹 进行引用<br/><br/><a href="https://img-blog.csdnimg.cn/2018111517414534.png" target="_blank"><img src="https://img-blog.csdnimg.cn/2018111517414534.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="311" height="194"/></a><br/>  <br/><br/>&lt;dependency&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;com.taobao&lt;/groupId&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;taobao-sdk-java-auto_1468685308771&lt;/artifactId&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;20191025&lt;/version&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;com.taobao&lt;/groupId&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;taobao-sdk-java-auto_1468685308771-20191025&lt;/artifactId&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;source&lt;/version&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dependency&gt;<br/>具体怎么引入可以百度maven怎么引入外部jar包(我这里大概说下1、pom.xml中配置好，名字随便取，只要&lt;artifactId&gt;taobao-sdk-java-auto_1468685308771-20181109&lt;/artifactId&gt;这里和jar包名字一样即可。2、写好之后点击Import Changes就会自动生成对应的文件夹还会有几个几kb的文件。3、找到.m2文件夹，然后跟着顺序找到&lt;version&gt;source&lt;/version&gt;这个文件夹，把jar包复制进去即可 例如：C:&#92;Users&#92;Administrator&#92;.m2&#92;repository&#92;com&#92;taobao&#92;taobao-sdk-java-auto_1468685308771-20191025&#92;source) <br/><br/>5、查看 淘宝客api 进行调用(看看调用以及示例)淘宝只要引入了jar包就可以直接使用对象方便快捷。<br/><br/>结果：<br/><textarea name="code" class="java" rows="15" cols="100">
//构建系统参数
TaobaoClient client = new DefaultTaobaoClient(url, appkey, appsecret);
 
//构建可变参数
TbkDgItemCouponGetRequest req = new TbkDgItemCouponGetRequest();
req.setAdzoneId(56322550367L);
req.setQ(name);
req.setPageSize(20L);
 
//实例化请求类
TbkDgItemCouponGetResponse response = new TbkDgItemCouponGetResponse();
try &#123;
&nbsp;&nbsp;&nbsp;&nbsp; //请求
&nbsp;&nbsp;&nbsp;&nbsp; response = client.execute(req);
&#125; catch (ApiException e) &#123;
&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();
&#125;
//打印结果
return response.getResults();
</textarea><br/><br/>通过swagger查看页面效果：<br/><br/><a href="https://img-blog.csdnimg.cn/20181115174802494.png" target="_blank"><img src="https://img-blog.csdnimg.cn/20181115174802494.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="544" height="130"/></a><br/><br/><a href="https://img-blog.csdnimg.cn/20181115174840377.png" target="_blank"><img src="https://img-blog.csdnimg.cn/20181115174840377.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="712" height="350"/></a><br/><br/>若是优惠券需要：1、taobao.tbk.item.get(商品查询接口) 2、taobao.tbk.dg.item.coupon.get  在进行一点匹配，判断操作即可<br/><br/>结果：   <br/><a href="https://img-blog.csdnimg.cn/20181115175255262.png" target="_blank"><img src="https://img-blog.csdnimg.cn/20181115175255262.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="183" height="284"/></a><br/><br/>PS：若是要区分天猫或者淘宝，判断    user_type     Number    1      卖家类型，0表示集市，1表示商城<br/><br/>PS：对于淘宝的商品详情<br/><br/> 第一种采用爬取，根据接口返回的详情页转换为h5手机页面，然后爬取图片。<br/><br/>第二种是采用第三方，如大淘客啥的等通过第三方平台查询(数据没那么同步，有的查询不到)。<br/><br/>第三种采用接口，淘宝接口查询详情。<br/><br/>如果还不明白可以先看下我另一篇关于淘宝客接入的文章 <br/><br/><a href="http://www.heckjj.com/post/484/" target="_blank">http://www.heckjj.com/post/484/</a><br/><br/>至此淘宝结束<br/><br/><br/><span style="font-size: 18px;"><strong>三、京东</span></strong><br/><br/>1、进入京东联盟 https://media.jd.com<br/><br/>2、创建 应用(根据需要是网站还是app)<br/><br/>3、审核通过(7个工作日)之后，在推广管理里面找到你的app或者网站，点击查看，获得appkey和secretkey<br/><br/>4、下载sdk(这里有个坑，京东联盟里面死都找不到进入sdk的路径最后问的客服&gt;_&lt;)https://news.jd.com/153_1.html 下载下来就一个jar包<br/><br/>5、项目引入sdk<br/><br/>&lt;dependency&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;com.jingdong&lt;/groupId&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;jd-cps-client&lt;/artifactId&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;1.0&lt;/version&gt;<br/>&lt;/dependency&gt;<br/>6、若没有引用好，就如上面的拼多多，那就只能自己拼接写原生<br/><br/><textarea name="code" class="java" rows="15" cols="100">
public Object test()&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置参数
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map&lt;String, String&gt; map = new TreeMap();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss&quot;);//时间格式
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(&quot;timestamp&quot;, sdf.format(new Date()));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(&quot;v&quot;, &quot;1.0&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(&quot;sign_method&quot;, &quot;md5&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(&quot;format&quot;, &quot;json&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(&quot;method&quot;, &quot;jd.union.open.order.query&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//param_json为空的时候需要写成 &quot;&#123;&#125;&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(&quot;param_json&quot;, &quot;&#123;&#92;&quot;orderReq&#92;&quot;:&#123;&#92;&quot;time&#92;&quot;:&#92;&quot;20181112&#92;&quot;,&#92;&quot;pageNo&#92;&quot;:1,&#92;&quot;pageSize&#92;&quot;:20,&#92;&quot;type&#92;&quot;:1&#125;&#125;&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(&quot;access_token&quot;, accessToken);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(&quot;app_key&quot;, appKey);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder sb = new StringBuilder(appSecret);//应规则首尾加上appSecret
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (Map.Entry entry : map.entrySet()) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String name = (String) entry.getKey();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String value = (String) entry.getValue();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//检测参数是否为空
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (this.areNotEmpty(new String[]&#123;name, value&#125;)) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(name).append(value);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(appSecret);//应规则首尾加上appSecret
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//生成签名
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String encode = MD5Util.encode(sb.toString());
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//拼接请求参数
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String prarm = &quot;sign=&quot;+encode+&quot;&amp;timestamp=&quot;+map.get(&quot;timestamp&quot;)+&quot;&amp;v=1.0&quot;+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&amp;sign_method=md5&amp;format=json&amp;method=jd.union.open.order.query&quot;+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&amp;param_json=&#123;&#92;&quot;orderReq&#92;&quot;:&#123;&#92;&quot;time&#92;&quot;:&#92;&quot;20181112&#92;&quot;,&#92;&quot;pageNo&#92;&quot;:1,&#92;&quot;pageSize&#92;&quot;:20,&#92;&quot;type&#92;&quot;:1&#125;&#125;&quot;+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&amp;access_token=&quot;+accessToken+&quot;&amp;app_key=&quot;+appKey;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String s = api.sendPost(SERVER_URL, prarm);//发送post请求
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//打印
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return s;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;
</textarea><br/><br/>若引用上了，则可以使用类<br/><br/><textarea name="code" class="java" rows="15" cols="100">
public Object test2()&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//构建系统参数
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JdClient client=new DefaultJdClient(SERVER_URL,accessToken,appKey,appSecret);
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//实例化封装请求参数类
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UnionOpenOrderQueryRequest unionOpenOrderQueryRequest = new UnionOpenOrderQueryRequest();
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置变动参数
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderReq orderReq = new OrderReq();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orderReq.setPageNo(1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orderReq.setPageSize(3);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orderReq.setType(1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orderReq.setTime(&quot;2018092018&quot;);
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//封装
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unionOpenOrderQueryRequest.setOrderReq(orderReq);
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//请求
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UnionOpenOrderQueryResponse response = null;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response= client.execute(unionOpenOrderQueryRequest);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; catch (JdException e) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//打印结果
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return response;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;
</textarea><br/>若生成优惠券~~还需要申请权限。。很麻烦，后面有机会再写。<br/><br/>京东开始只能采取嵌入广告的形式，等订单量起来了，才能申请权限。具体京东开放平台有写，就是获取京东的代码放到自己的app或者网站里面，达到推广的效果。<br/><br/>Tags - <a href="https://www.heckjj.com/tags/%25E6%25B7%2598%25E5%25AE%259D%25E5%25AE%25A2/" rel="tag">淘宝客</a> , <a href="https://www.heckjj.com/tags/%25E5%25A4%259A%25E5%25A4%259A%25E5%25AE%25A2/" rel="tag">多多客</a> , <a href="https://www.heckjj.com/tags/%25E4%25BA%25AC%25E4%25B8%259C/" rel="tag">京东</a>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/post//#blogcomment</link>
<title><![CDATA[[评论] 接入淘宝客/拼多多(多多客)/京东优惠券推广]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>