【问题标题】:LAZADA Open platform - Invalid authorization codeLAZADA开放平台-授权码无效
【发布时间】:2021-07-19 16:00:54
【问题描述】:

我无法将卖家账户连接到lazada开放平台 我将回调添加到 mywebsite/callbackurl

$c = new LazopClient($this->LazURL, $this->appKey, $this->appSecret);
$request = new LazopRequest('/auth/token/create');

$request->addApiParam('code',$code);
dd($c->execute($request));

返回到 mywebsite/callbackurl?code=xxxxxx 错误 ISP "Invalid authentication code"

"{"code":"InvalidCode","type":"ISP","message":"无效授权码","re​​quest_id":"21223b8216267097993104138"}"

希望有人可以帮助我解决这个问题

谢谢

【问题讨论】:

    标签: php sdk


    【解决方案1】:

    线程很旧,但我希望这会有所帮助。我追了 Lazada 的人将近一个月,以使 API 能够获得转化。他们的 OPEN SDK 根本不起作用。所以需要使用API​​调用方式从缺勤账户中获取数据。下面是我用来从他们的 Open API 获取数据的完整 PHP 代码。

    要获取凭据详细信息,请导航到 Lazada 缺席帐户 -> 集成 -> OPEN API

    <?php
    $app_id = LiteApp Key;
    $secret = LiteApp Secret;
    $user_token = User Token;
    
    function hmac_sha256($data, $key){
        return hash_hmac('sha256', $data, $key);
    }
    function msectime() {
       list($msec, $sec) = explode(' ', microtime());
       return $sec . '000';
    }
    $timeStamp = msectime();
    
    function generateSign($apiName,$params,$secret)
    {
        ksort($params);
    
        $stringToBeSigned = '';
        $stringToBeSigned .= $apiName;
        foreach ($params as $k => $v)
        {
            $stringToBeSigned .= "$k$v";
        }
        unset($k, $v);
        return strtoupper(hmac_sha256($stringToBeSigned,$secret));
    }
    
    $options = array(
                    'app_key' => $app_id,
                    'timestamp' => $timeStamp,
                    'sign_method' =>'sha256',
                    'userToken'=> $user_token,
                    'dateStart'=> '2021-11-01',
                    'dateEnd'=> '2021-11-15',
                    'offerId'=> OFFER ID, #You can get this from conversion report.
                    'limit' => 10,
                    'page' => 1,
                );
    
    $signature = generateSign('/marketing/conversion/report',$options,$secret);
    $url = "https://api.lazada.co.th/rest/marketing/conversion/report";
    #List of available endpoint - https://open.lazada.com/doc/doc.htm?spm=affiliate.home.0.0.5b81623b6bdk7G#?docId=108065&nodeId=10443
    $i=0;
    foreach ($options as $key => $value)
    {
        if($i == 0){
            $url .= "?" ."$key=" . urlencode($value);
        }else{
            $url .= "&" ."$key=" . urlencode($value);
        }
        $i++;   
    }
    $url.= '&sign='.$signature;
    
    
    $curl = curl_init();
    curl_setopt_array($curl, array(
      CURLOPT_URL => $url,
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => '',
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 0,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => 'GET',
    ));
    
    $response = curl_exec($curl);
    curl_close($curl);
    echo $response;
    

    【讨论】:

      【解决方案2】:

      尝试使用 Lazada npm 包Lazada-open-platform-sdk

      【讨论】:

        【解决方案3】:

        检查 $this->LazURL 使用的值

        您可能正在使用特定于国家/地区的 api 端点,例如 api.lazada.sg,但是对于 /auth api,您必须使用全局 api.lazada.com 端点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-19
          • 2020-12-31
          • 1970-01-01
          • 1970-01-01
          • 2017-01-24
          • 1970-01-01
          相关资源
          最近更新 更多