iT邦幫忙

0

蝦皮串接實作筆記-Authorize Shop:商店授權

前言


目標:串接蝦皮訂單、標籤資訊,目前串接蝦皮 OpenAPI 2.0 版本,串接手冊
串接步驟:

  1. Create App:建立串接的帳號
  2. Authorize Shop:商店授權
  3. Access Token:取得串接用需要的 access token
  4. 串接 API

商店授權


前一篇已經建立好串接的帳號,接下來這個步驟是商店(賣場)授權
2.0 版本的商店授權有中文版手冊

大致說明一下商店授權的步驟:

  1. 建立一個授權 url (5min 有效)
  2. 提供 授權 url 給賣家
  3. 賣家點了 url 後會先登入蝦皮的帳號 (3min 內要輸入)
  4. 登入後會有一個授權頁面
  5. 點擊授權按鈕後就會正式授權
  6. 跳轉連結後獲得一組 code 、shop_id

建立授權 URL


蝦皮提供的授權用的固定 url

https://partner.shopeemobile.com/api/v2/shop/auth_partner
https://partner.test-stable.shopeemobile.com/api/v2/shop/auth_partner (測試區)

partner_id、redirect、sign、timestamp,這四個參數用 query 的方式加到固定 URL

參數 說明 範例
partner_id 建立 APP 時產生的,測試區跟正式區不能混用 012345678
redirect 賣家點完授權後要重新導向的 URL https://www.google.com/
sign 透過 HMAC-SHA256 生成的加密簽名(下面說明) dlslioi2989d8a29809ldkjlkl209809fsdfs
timestamp 要跟帶到 sign 裡的一致,有效時間 5 分鐘 1594897040

如何生成 sign
partner_id、api path(授權用的固定 url)、timestamp 拼成字串後,partner key 做為加密 Key,用 HMAC-SHA256 進行 hash 編碼

以 php 示範:

$base_string=strval($partnerId.$path.$timestamp); // 要加密的字串 (partner_id、api path、timestamp)
$sign=hash_hmac('sha256',$base_string,$partnerKey,false); // HMAC-SHA256 編碼

以正式區 URL 為例,最後的 url 會長這樣:

https://partner.shopeemobile.com/api/v2/shop/auth_partner?partner_id=012345678&redirect=https://www.google.com/&sign=dlslioi2989d8a29809ldkjlkl209809fsdfs&timestamp=1594897040

生成後就可以把這個 Url 提供給賣家授權,賣家授權完後會跳轉到 redirect的網址,並會用 query 的方式把賣家的 code、shop_id 給你

以剛剛 redirect 的 url 是 https://www.google.com/ 為例,授權完後會跳轉到下面網址

https://www.google.com/?code=xxxxxxx&shop_id=xxxxxx

如果有收到 code、shop_id 就是授權成功了喔,然後好像也會收到 email 的樣子
code、shop_id 之後打 API 會需要用到的東西,如果不小心過期或是沒記住到,就重新授權即可


小小心得

一開始生成 sign 時是用php 的 hash 一直失敗,後來才發現是要用 HMAC-SHA256,改成用 php 內建的 hash_hmac 就成功了~

下一篇再來介紹如何打 API


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
arguskao
iT邦新手 4 級 ‧ 2023-08-24 18:04:04

這個是不是要先取得開發者的權限?

我要留言

立即登入留言