楽天RMSのAPI利用についてはPHPの記事がたくさんありますが、
pythonの記事はまだまだ少ないので投稿します。
##楽天RMSのAPIをpythonから利用する urllib.request版
以下のAPIをpythonから利用します。
- 楽天ペイ受注API(RakutenPayOrderAPI)
- 受注検索 searchOrder
このAPIは、指定した期間中の受注番号を返してくれます。
RMSapi.py
import base64
import json
import urllib.request
import datetime
from pytz import timezone
# ■■■■■■■■ 認証情報 ■■■■■■■■■■
serviceSecret=b"ご自身のサービスシークレット"
licenseKey=b"ご自身のライセンスキー"
headers = {
'Authorization' : b"ESA " + base64.b64encode(serviceSecret + b':' +licenseKey),
'Content-Type': 'application/json; charset=utf-8',
}
# ■■■■■■■■ post ■■■■■■■■■■
# 現在時から何時間前を設定(63日以内制限あり)
int_st=-24 #24H前を想定
# 開始日時:jst_st 終了日時:jst_ed を生成
# たぶんもっとスマートな生成方法があるはず
jst_st = datetime.datetime.now(timezone('Asia/Tokyo'))+ datetime.timedelta(hours=int_st)
jst_st ="{0:%Y-%m-%dT%H:%M:%S}".format(jst_st)
jst_st = str(jst_st)+"+0900"
jst_ed = datetime.datetime.now(timezone('Asia/Tokyo'))
jst_ed ="{0:%Y-%m-%dT%H:%M:%S}".format(jst_ed)
jst_ed = str(jst_ed)+"+0900"
# post文字列生成
url = 'https://api.rms.rakuten.co.jp/es/2.0/order/searchOrder/'
data = {
"dateType":1,
"startDatetime":jst_st,
"endDatetime":jst_ed
}
# post
req = urllib.request.Request(url, json.dumps(data).encode(), headers)
with urllib.request.urlopen(req) as res:
body = res.read()
# APIの戻り値を格納
json_load = json.loads(body)