php获取京东订单数据
php获取京东订单数据
很明显,既然是获取京东订单数据,肯定是要调用京东提供的第三方API了。一通度娘之后,很快就能定位到京东宙斯了,其主要是提供一系列关于京东数据的第三方接口了,当然也包括获取京东店铺的订单数据了。开始进入操作步骤:
NO1:获取的是京东订单的数据,肯定是作为京东商家的身份了,进入宙斯官方网站以商家账户登录,进入控制台,创建应用。。。。。。,一系列操作下来,最终目的是拿到应用的appkey与appsec.
NO2:接下来的操作就是查找用到的接口,下载对应的SDK了
NO3:你以为现在就能通过SDK提供的接口调用获取数据了,NO NO NO。。。,有这个想法的你很天真!!!在你申请的获取订单接口后面会有个明确的标志:"鼎内调用",这是个什么鬼?京东解释是:
所有ISV须将应用部署在云鼎内,敏感信息接口须鼎内调用;
这句话的最终目的是,你必须要使用京东云鼎服务器,注意是京东云鼎服务器,不是京东服务器,这两者还是有差别的。刚开始我注册的是京东服务器,最后跟我说是需要云鼎服务器,也是醉了,
还好客服给我说能退货,服务还是可以的。选个最低配就差不多了。
NO4:说的是敏感信息禁止出鼎,我们还是可以通过其他服务器访问鼎内接口拿数据的。解析个域名到云鼎服务器,要不咋拿数据不是。然后自定义个php文件,作为你访问请求数据的入口文件,将下载的SDK解压到鼎内服务器的指定目录,能方便你的入口php调用的位置即可
NO5:重要步骤,获取code,获取token
获取code链接:
https://oauth.jd.com/oauth/authorize?response_type=code&client_id=应用的appkey&redirect_uri=回调url &state=yyq
回调的url为你在应用基本信息内设置的,直接在浏览器内访问,成功后将跳转至设置的回调链接,参数code也会拼接在链接后
获取token链接:
https://auth.360buy.com/oauth/token?grant_type=authorization_code&client_id=应用的appkey&redirect_uri=回调url &code=上面获取的code值&state=yyq&client_secret=应用的appsec
成功后将会返回JSON格式数据,里面包含token值,拿来用即可。
NO6:上php代码,以下为鼎内php获取数据接口,参数啥的自行配置:
public function getOrderList()
{
$accessToken = 'XXXXXX';
$url = 'https://api.jd.com/routerjson';
$appKey = 'XXXXXXX';
$appSec = 'XXXXXXX';
require_once('./JdSdk/jd/JdClient.php');
require_once('./JdSdk/jd/request/PopOrderSearchRequest.php');
$c = new \JdClient();
$c->appKey = $appKey;
$c->appSecret = $appSec;
$c->accessToken = $accessToken;
$c->serverUrl = $url;
$req = new \PopOrderSearchRequest();
$req->setStartDate( "2019-02-20 00:00:00" );
$req->setEndDate( "2019-02-20 23:59:59" );
$req->setOrderState( "WAIT_SELLER_STOCK_OUT,WAIT_GOODS_RECEIVE_CONFIRM,WAIT_SELLER_DELIVERY,
PAUSE,FINISHED_L,TRADE_CANCELED,LOCKED,POP_ORDER_PAUSE" );
$req->setOptionalFields( "orderId,payType,orderTotalPrice,orderSellerPrice,orderPayment,orderState,
orderStateRemark,invoiceInfo,orderRemark,orderStartTime,orderEndTime,consigneeInfo,itemInfoList" );
$req->setPage( "1" );
$req->setPageSize( "100" );
$req->setSortType( 123 );
$req->setDateType( 123 );
$resp = $c->execute($req, $accessToken);
$result = $this->object_to_array($resp);
echo json_encode($result);
}
NO7:在其他地方通过域名访问接口,可以将某些参数post过来,如时间,需要获取的数据字段,获取最精准的数据,数据获取成功后,可以将其按照规定的格式导入数据库啥的,像这种获取订单接口
肯定不止是拿一次数据就完事了吧,创建个定时器直接跑起来。。。。。。