php获取京东订单数据

Author Avatar
yyq 2020-05-25 11:38:29
  • 二维码

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过来,如时间,需要获取的数据字段,获取最精准的数据,数据获取成功后,可以将其按照规定的格式导入数据库啥的,像这种获取订单接口

                   肯定不止是拿一次数据就完事了吧,创建个定时器直接跑起来。。。。。。


上一篇 返回列表 下一篇

发表评论

Tips:评论内容请文明用语