Открытая платформа LAZADA — Неверный код авторизации

#php #sdk

Вопрос:

У меня возникли проблемы с подключением учетной записи продавца к открытой платформе lazada, я добавляю обратный вызов на свой веб-сайт/обратный вызов

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

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

Он вернулся на мой веб-сайт/обратный вызов?код=xxxxxx с ошибкой ISP «Неверный код авторизации».

«{«код»:»Недопустимый код»,»тип»:»Провайдер»,»сообщение»:»Недопустимый код авторизации»,»идентификатор запроса»:»21223b8216267097993104138″}»

Надеюсь, кто-нибудь сможет мне помочь в этом вопросе

Спасибо

Ответ №1:

Нить старая, но я надеюсь, что это как-то поможет. Я преследовал людей Lazada почти месяц, чтобы заставить API работать для получения конверсий. Их ОТКРЫТЫЕ SDK вообще не будут работать. Поэтому вам нужно использовать метод вызова API, чтобы получить данные из учетной записи отсутствия. Ниже приведен полный PHP-код, который я использую для получения данных из их открытого API.

ЧТОБЫ получить сведения об учетных данных, перейдите в раздел Учетная запись отсутствия Lazada -> Интеграция ->> ОТКРЫТЬ 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=108065amp;nodeId=10443
$i=0;
foreach ($options as $key => $value)
{
    if($i == 0){
        $url .= "?" ."$key=" . urlencode($value);
    }else{
        $url .= "amp;" ."$key=" . urlencode($value);
    }
    $i  ;   
}
$url.= 'amp;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