大家好,我是网创有方,今天教大家如何使用大淘客的api实现拼多多商品详情信息查询。这里用到的多多进宝,如果没有多多进宝的,先去多多进宝注册个账号吧!
第一步:进入大淘客官方创建应用,并且下载大淘客的sdk
第二步:将sdk导入到项目中
第三步:编写验签和查询代码,验签的目的是为了防止恶意注入,来保证请求的合法性。
代码中进行了2轮查询,为什么要这样操作呢?官方说goosId已经被废弃了,现在采用加密后的goodSign代替,但是goodSign获取方式官方又不说,后面经过网络查询得知可以在第一轮的json返回数据里获取。所以这里就进行了二次请求。把第一轮查询到的goodSign赋值给第二轮查询的参数。
<?phpinclude 'vendor/autoload.php';//拼多多商品详情$host = "https://openapi.dataoke.com/api/dels/pdd/goods/detail";//默认必传参数$data = ['appKey' =>"你的appKey",'version' => 'v2.0.0','goodsSign' =>'','searchId' =>'','goodsImgType'=>'','goodsId'=>'你要查询的商品名称'];//加密的参数$data['sign'] = makeSign($data,"你的secretKey");//拼接请求地址$url = $host . '?' . http_build_query($data);//执行请求获取数据$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_TIMEOUT,3000);curl_setopt($ch, CURLOPT_HEADER, 0);$output = curl_exec($ch);$a = curl_error($ch);if(!empty($a)){return json_encode(array('code'=>10003, 'msg'=>$a));}// curl_close($ch);// return $output;echo($output);// 使用json_decode函数将JSON字符串解码为PHP对象 $jsonObject = json_decode($output); //将第一次请求返回的json字符串转化为php对象// 提取name字段的值 $goodsSign = $jsonObject->goodsSign; //提起goodsSign//开始第二次请求$data = ['appKey' =>"你的appKey",'version' => 'v2.0.0','goodsSign' =>$goodsSign,'searchId' =>'','goodsImgType'=>'','goodsId'=>'你要查询的商品名称'];//加密的参数$data['sign'] = makeSign($data,"你的secretKey");//拼接请求地址$url = $host . '?' . http_build_query($data);//执行请求获取数据$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_TIMEOUT,3000);curl_setopt($ch, CURLOPT_HEADER, 0);$output = curl_exec($ch);$a = curl_error($ch);if(!empty($a)){return json_encode(array('code'=>10003, 'msg'=>$a));}function makeSign($data, $appSecret)
{ksort($data);$str = '';foreach ($data as $k => $v) {$str .= '&' . $k . '=' . $v;}$str = trim($str, '&');$sign = strtoupper(md5($str . '&key=' . $appSecret));return $sign;
}
第四步:访问相关网页进行查询
第五步:对返回的json数据进行数据处理,这里就不说了,大家想怎么处理自己看着办吧