当前位置:
  1. 首页 »
  2. 笔记 »
  3. 正文

京东联盟新版API接口PHP版的坑

零分 2,474

京东联盟新版API接口的坑,PHP版,其他版本不会!

今天测试了下京东联盟的API,新版看起来和淘宝很像了,操作起来应该很容易!下载SDK,SDK已经封装了好了,就不用自己去封装拼接!

看了一下,有composer.json文件,想着可能需要composer install一下,最后出错了,这一点比较喜欢拼多多的API接口,里面直接就有调用demo。composer install之后可以配置下APIKEY就可以直接访问!

得,出错了就自己来,进入jd,接口和阿里妈妈的API接口结构很像

合并下JdClient.php和RequestCheckUtil.php(习惯尽量将文件合并,以免有太多的include)测试下jd.union.open.promotion.common.get接口,查看下文档示例

$c = new JdClient();
$c->appKey = appKey;
$c->appSecret = appSecret;
$c->accessToken = accessToken;
$c->serverUrl = SERVER_URL;
$req = new UnionOpenPromotionCommonGetRequest();
$promotionCodeReq= new PromotionCodeReq;
$req->setPromotionCodeReq($promotionCodeReq);
$req->setVersion("1.0");
$resp = $c->execute($req, $c->accessToken);

修改下,像token不需要,version不需要就删除!调整完是

include "______Config/config.php";//apikey配置文件
include "______API/JdClient.php";//请求文件
include "______API/request/UnionOpenGoodsJingfenQueryRequest.php";//接口参数
include "______API/request/domain/UnionOpenGoodsJingfenQuery/GoodsReq.php";//接口参数
$c = new JdClient();
$c->appKey = $ApiConfig["AppKey"];
$c->appSecret = $ApiConfig["AppSecret"];
$req = new UnionOpenGoodsJingfenQueryRequest();
$goodsReq= new GoodsReq;
$goodsReq->setEliteId(1);
$req->setGoodsReq($goodsReq);
$resp = $c->execute($req);
print_r($resp);

竟然出错,错误代码400参数错误! 调试接口

https://api.jd.com/routerjson?access_token=&app_key=27cb4b7af2e42be76ed0a395b6584bbc&method=jd.union.open.goods.jingfen.query&v=1.0&sign=C242FFD55C46C50E172D1FA27DE93F79&360buy_param_json=%7B%22goodsReq%22%3A%7B%22eliteId%22%3A1%7D%7D×tamp=2021-09-08+14%3A17%3A06.166%2B0800

urldecode后

https://api.jd.com/routerjson?access_token=&app_key=27cb4b7af2e42be76ed0a395b6584bbc&method=jd.union.open.goods.jingfen.query&v=1.0&sign=C242FFD55C46C50E172D1FA27DE93F79&360buy_param_json={"goodsReq":{"eliteId":1}}&timestamp=2021-09-08 14:17:06.166+0800

尝试直接接入参数,不用GoodsReq类

include "______Config/config.php";//apikey配置文件
include "______API/JdClient.php";//请求文件
include "______API/request/UnionOpenGoodsJingfenQueryRequest.php";//接口参数
$c = new JdClient();
$c->appKey = $ApiConfig["AppKey"];
$c->appSecret = $ApiConfig["AppSecret"];
$req = new UnionOpenGoodsJingfenQueryRequest();
$goodsReq= array();
$goodsReq["eliteId"]=1;
$req->setGoodsReq($goodsReq); //$req->setGoodsReq(json_encode($goodsReq)); 原先用json,一样出错!
$resp = $c->execute($req);
print_r($resp);

最后终于调试成功!被官方的示例折腾了一个多小时

标签:

记一次宝塔MySQL无法启动的问题

去顺丰送快递之后,一直就没有管理打开网站,好像不去之前也没怎么更新 难得休息,打算更新下企业模板,发现无法打开。显示链接数据库失败。 进入宝塔后台,发现MySQL停止了运行。 第一时间启动MySQL,但是发现一直启动失败。 之后更新了下宝塔,更新了下MySQL,还是无法启动。 百度了一番,发现原来我是真的看不懂那些日志。 只好找些看得懂的来测试。 删除了两个文件 /www/server/data/ib_logfile0 /www/server/data/ib_logfile1 无法启动,注释了innodb_开头配置 #innodb_data_home_dir = /www/server/dat
笔记 1,257

网站设置开灯(亮模式/白天)和关灯(暗模式/黑夜)效果

在很早之前,这个效果叫做开灯/关灯,现在叫做白天/黑夜,曾经有那么一段时间没有看到过这种效果,现在又很多网站/APP都喜欢这种切换白天/黑夜模式。 实现效果:设置2套或者多套色调模板,和之前的那种换皮肤大差不差。所以博客新主题也设置了这么一个效果,样式布局基本没怎么改变,后台设置页升级了一下,很多东西都不再“写死”,可以自由设置! 白天模式效果: 黑夜模式效果: 感觉黑夜的色调比较好看。 总体涉及到的原理: 1、设计2套或者多套CSS样式,可以在body里添加一个class,后面保留class/ID样式名称不变,在不同的样式里给设计一个区域,通过body里的class名调用不同的样式CSS。
笔记 2,416

记一次网页源码顶部空白行的问题处理

正常来说,网页源码顶部如非UFT-8 bom编码的问题,基本不会影响网站的正常运行,但如php生成xml的话,就会出现问题。 因更换了主题(新主题暂时未上线,只是测试),发现xml无法正常显示,查看源码,顶部多出了一行空白行,本地运行正常。 查找原因,基本每个PHP问题都排查了,未发现任何问题,将主题上传到另外一个网站运行,发现正常。基本可以排除是主题的原因,剩下的可能是插件的问题。 查看了插件的源码,发现真的是插件的问题,PHP插件文件底部多出了几行,删除多出的行,重新运行,空白行不见了! 记录下,防止下次又因同样的原因而花时间去排查!
笔记 2,536

wordpress禁用REST API导致古腾堡编辑器发布文章出错问题

wordpress禁用REST API,在function.php中加入以下代码: add_filter("json_enabled", "__return_false"); add_filter("json_jsonp_enabled", "__return_false"); add_filter("rest_enabled", "__return_false"); add_filter("rest_jsonp_enabled", "__return_false"); remove_action("init", "rest_api_init"); remove_action("rest_ap
笔记 1,380

wordpress 后台主题设置选项按钮(button、input submit)点击屏蔽提交事件禁止刷新

wordpress 后台主题设置选项按钮(button、input submit)点击屏蔽提交事件禁止刷新 如果在设计主题或者插件后台设置选项时,wordpress后台的按钮(button、input submit)默认是提交操作,如只是响应JS事件,需要屏蔽提交,防止页面刷新。e.preventDefault(); 完整示例: $("button.copy").on("click",function(e){ e.preventDefault(); JS操作 });
笔记 1,262