【问题标题】:How to generate signature in Shopee 2.0 API request authentication?Shopee 2.0 API请求认证中如何生成签名?
【发布时间】:2020-10-13 04:11:58
【问题描述】:

我正在尝试通过https://partner.uat.shopeemobile.com/api/v2/shop/get获取店铺详细信息

我在 php 中试过这个

$timestamp = time();
$partner_key = 123456;
$path = '/api/v2/shop/get';
$access_token = 'token...';
$shop_id = 22222;
$base_string = $partner_key . $path . $timestamp . $access_token . $shop_id;
$secret_key = 'secret...';

$sign = hash_hmac('sha256', $base_string, $secret_key);

但返回的响应是 wrong_sign。

我不确定路径是否正确。但这就是我在他们的文档中所理解的。 https://open.shopee.com/documents?module=63&type=2&id=56

【问题讨论】:

  • 嘿伊恩,你试过这个吗?:stackoverflow.com/a/57788509/3080207 如果是这样,出了什么问题?
  • 嗨 Mikey,是的,我为 v1 尝试过,但我认为它不适用于部署 v2 后创建的应用程序。它的回应是合作伙伴和商店没有链接,尽管我已经通过授权 url 和我的卖家账户链接了它们。 v2 的签名计算与 v1 不同。

标签: php api


【解决方案1】:
$date = new DateTime();
$timestamp = $date->getTimestamp();
$partner_id = "xxxxxx";
$shop_id = "xxxxxx";
$secret_key = "yyyyyyyy";
$path = "/api/v2/auth/token/get"; //without the host
$base_str = $partner_id . $path . $timestamp . $shop_id;            
$sign = hash_hmac('sha256', $base_str,  $secret_key, false);

【讨论】:

    【解决方案2】:

    试试这个

    $access_token = 'actual_token.....';
    $shop_id = 12345;
    $timest = time();
    $host = 'https://partner.uat.shopeemobile.com';
    $path = '/api/v2/shop/get_shop_info';
    $partnerID = 1234567;
    $partnerKey = 'actual_partner_key....';
    $tokenBaseString = $partnerID.$path.$timest;
    $sign = hash_hmac('sha256', $tokenBaseString, $partnerKey, false);
    

    设置网址

    $url = htmlspecialchars($host.$path."?partner_id=".$partnerID."&timestamp=".$timest."&access_token=".$access_token."&shop_id=".$shop_id."&sign=".$sign);
    

    【讨论】:

      猜你喜欢
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      相关资源
      最近更新 更多