虾皮串接实作笔记-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


<<:  资安学习路上-picoCTF 解题(General) 1

>>:  RWD模版

[第08天]理财达人Mx. Ada-即时报价Snapshots

前言 本文说明如何查询即时报价-Snapshots作业。 程序实作 Snapshots(快照):某个...

Day9 自订开机执行的程序码 - 函数宣告与语法糖

前面几天,我探索了 Lua 的变数型别、条件判断、回圈、标准函式库等 在这过程中,我已经多少看过函数...

30天打造品牌特色电商网站 Day.11 CSS框架-Bootstrap5

昨天已经初步介绍几个简单常用的bootstrap语法, 今天来看看几个也是好用、比较详细或特殊的情况...

谈谈JSON

由wiki(https://zh.wikipedia.org/wiki/JSON) 可以知道JSON...

2.建立unity专案、页面简介、建立角色

建立专案 1.点击新专案来建立一个新专案:D 2.选择要使用的样板,这次要做2DRPG雏形,因此选择...