LoginSignup
6
4

More than 3 years have passed since last update.

楽天RMSのAPIをpythonから利用する urllib.request版

Posted at

楽天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)

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4