大淘客api实现多多进宝的商品查询PHP版

发布于:2024-06-30 ⋅ 阅读:(146) ⋅ 点赞:(0)

大家好,我是网创有方,今天教大家如何使用大淘客的api实现拼多多商品详情信息查询。这里用到的多多进宝,如果没有多多进宝的,先去多多进宝注册个账号吧!

第一步:进入大淘客官方创建应用,并且下载大淘客的sdk

第二步:将sdk导入到项目中

第三步:编写验签和查询代码,验签的目的是为了防止恶意注入,来保证请求的合法性。

代码中进行了2轮查询,为什么要这样操作呢?官方说goosId已经被废弃了,现在采用加密后的goodSign代替,但是goodSign获取方式官方又不说,后面经过网络查询得知可以在第一轮的json返回数据里获取。所以这里就进行了二次请求。把第一轮查询到的goodSign赋值给第二轮查询的参数。

<?php
    include '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数据进行数据处理,这里就不说了,大家想怎么处理自己看着办吧


网站公告

今日签到

点亮在社区的每一天
去签到