目标:串接虾皮订单、标签资讯,目前串接虾皮 OpenAPI 2.0 版本,串接手册
串接步骤:
前面几篇已经取得 access token,接下来就可以来尝试串接虾皮资料了
这次会尝试虾皮订单,在取得订单资料之前,可以先参考一下虾皮的 API Call Flows
看过 API Call Flows 会更了解虾皮资料处理的顺序跟逻辑
橘色底是订单的状态,每个订单状态产生的原因都有在旁边加以说明
其中几个步骤的内容
1.订单在确认付款後订单状态会由 UNPAID 转成 READY_TO_SHIP
2.卖家或消费者删除订单後订单状态会变成 CANCELED; 消费者可以在订单状态变成 SHIPPED 之前取消订单
4.在卖家安排物流後订单状态会变成 PROCESSED
5.物流单(托运单)被扫瞄後订单状态变成 SHIPPED
6.消费者要求退货後订单状态变成 TO_RETURN
然後正常流程会是经过 1、4、5 这几步骤,其他的话则是不一定
这个 API 可以让你带入需要的参数後取得你想要的订单单号
格式 | HTTP/JSON |
---|---|
URL | • 正式区:https://partner.shopeemobile.com/api/v2/order/get_order_list |
• 测试区:https://partner.test-stable.shopeemobile.com/api/v2/order/get_order_list | |
请求方式 | GET |
ps:
公共参数:
参数 | 类型 | 说明 |
---|---|---|
sign | string | partner_id、api path、timestamp HMAC-SHA256 编码,并用 partner key 当作加密 Key (可参授权商店那一篇) |
partner_id | int | Create App 产生的 partner_id (可参Create App 那一篇) |
timestamp | int | 时间戳,期限 5 min |
access_token | string | 期限 4 小时(可参取得 access token 那一篇) |
shop_id | int | 商店 ID(可参授权商店那一篇) |
业务参数:(因为是 GET,所以要带到 url 的 query)
参数 | 类型 | 说明 |
---|---|---|
time_range_field | string | 时间类别:create_time 或 update_time. |
time_from | int | 起始时间,起始到结束不能超过 15 天 |
time_to | int | 结束时间,起始到结束不能超过 15 天 |
page_size | int | 一次 response 的笔数,最多 100 |
cursor | string | 超过 1 页的,下一页的数 |
order_status | string | 订单状态:UNPAID/READY_TO_SHIP/PROCESSED/SHIPPED/COMPLETED/IN_CANCEL/CANCELLED/INVOICE_PENDING |
response_optional_fields | string | 回应的栏位,不填的话只会回应主要的栏位,其余的栏位就不会有 |
以 PHP 为范例
// 取得订单清单
function getOrderList(
$host,
$partnerId,
$partnerKey,
$timestamp,
$access_token,
$shop_id,
$cursor,
$page_size,
$order_status
){
$path='/api/v2/order/get_order_list';
$base_string=strval($partnerId.$path.$timestamp.$access_token.$shop_id);
$sign=hash_hmac('sha256',$base_string,$partnerKey,false);
$time_from=strtotime('2022-05-01 11:00:00');
$time_to=strtotime('2022-05-12 23:00:00');
$paremeter='&time_range_field=create_time&time_from='.$time_from.'&time_to='.$time_to.'&page_size='.$page_size.'&order_status='.$order_status;
$url=$host.$path.'?partner_id='.$partnerId.'×tamp='.$timestamp.'&sign='.$sign.'&access_token='.$access_token.'&shop_id='.$shop_id.$paremeter;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$res = curl_exec($ch);
return $res;
}
串接完後会有清单的 order_sn,这样就可以进一步去打 get_order_detail 来取得订单详细资料
小提醒:如果 response_optional_fields 没有带 order_status 就不会有喔
一开始想说怎麽不给完整的资料,但後来串接 get_order_detail 的时候,发现蛮不错的耶,只会给你必要的资讯,需要的资讯再自己取得就好,不需要的就可以不用给,就不用接收一大坨的资料
经过前面商店授权、 access token 後就这次串接就相对简单了,另外我觉得很棒的是虾皮有提供 API Call Flows 这我觉得蛮不错的,让开发者可以很清楚知道实际操作跟 api 之间的关联性!
参考资料:
API Call Flows
get_order_list
<<: 【基础影像应用篇】DAY5. 建立模型专案与影像标记流程(下)
>>: 资安学习路上-picoCTF 解题(Reverse)1
今天实作一个很简单的计数器,按下按钮後数字会一直累加1 要先将useState 汇入 import ...
前言 Hi, 我是鱼板伯爵今天要教大家 Firebase Authentication 和开通 Go...
Visual Studio Code 安装:https://code.visualstudio.c...
这篇我是在讨论提供反馈 (giving feedback)。但对主管来说,如何接受反馈 (takin...
大家中秋节快乐 有没有烧肉吃饱饱,剥柚子,带柚子帽呢? 今天正15,月亮超级圆好漂亮喔 今天是我们来...