首頁 > 軟體

使用python3.0 對接美團介面的實現範例

2022-05-27 18:05:11

提示:嗨咯,大家好,今天又來更新了  本章要和大家分享的是關於美團介面的實現方式以及部分程式碼的展示。

前言

首先我們去對接一個介面時首先要懂它的介面規則,也就是要讀懂他的官方檔案  地址如下:

https://open-shangou.meituan.com/home/doc/bulkPurchasing/37

提示:以下是本篇文章正文內容,下面案例可供參考

一、請求介面的基本系統引數解析

 

解析:時間戳(timestamp)獲取當前的時間轉化為一串數位

app_id 是美團給的官方id這個沒什麼好說的

sig 這個值是根據一系列的引數和 美團Secret拼接 通過mod5加密然後得到的一個字串。

具體 計算簽名的方法再看看官方檔案:美團閃購開放平臺  

這幾個系統級引數都是每次必填的

二、具體引數的程式碼實現

1.timestamp(時間戳)

def get_tamp():  # 獲取當前的時間戳
    t = time.time()
    return int(t)

2.計算sig簽名

程式碼如下(範例):

#這個方法可以直接將傳入的引數拼接成加密前的字串
def param_sort(param_dict):  #傳入字典,返回生成sig的字串
    keys_list = sorted(param_dict.keys())
    rb_str = ''
    for k in keys_list:
        key_value = k + '=' + str(param_dict[k])
        rb_str = rb_str + key_value + "&"
        # rb_str = rb_str[0:-1] #不保留字串末尾的&
    return rb_str[0:-1]
#通過前面的字串 加密出sig
def sig_mod5(sig_url):  #將字串傳入進行加密
    m = hashlib.md5()
    m.update(sig_url.encode('utf8'))
    sig = m.hexdigest()
    return sig
 
 

3.獲取一個時間段的訂單號

下面就淺淺的演示一下吧

 
def param_sort(param_dict):  #傳入字典,返回生成sig的字串
    keys_list = sorted(param_dict.keys())
    rb_str = ''
    for k in keys_list:
        key_value = k + '=' + str(param_dict[k])
        rb_str = rb_str + key_value + "&"
        # rb_str = rb_str[0:-1] #不保留字串末尾的&
    return rb_str[0:-1]
 
def sig_mod5(sig_url):
    m = hashlib.md5()
    m.update(sig_url.encode('utf8'))
    sig = m.hexdigest()
    return sig
 
def get_tamp():  # 獲取當前的時間戳
    t = time.time()
    return int(t)
 
def req_get_result(api_url, api_data):  # get方法請求函數
    req_get = requests.get(api_url, api_data)
    result = req_get.json()
    return result
 
 
 
def req_post_result(api_url, api_data):  # post方法請求函數
    req_post = requests.post(api_url, data=api_data)
    result = req_post.json()
    return result
 
 
def 獲取一個時間段的訂單號(date_time, day_seq_start,day_seq_end,mendian):  # 今日流水單號,門店編號
    sing_data = {
        'app_id': 2005,#演示app_id並非真的
        'app_poi_code': mendian, #門店編號
        'timestamp': get_tamp(),  # 時間戳
        'date_time': date_time,   #下面幾個引數是應用級引數
        'day_seq_start': day_seq_start,
        'day_seq_end': day_seq_end  
    }
    # 請求地址
    url = 'https://waimaiopen.meituan.com/api/v1/ecommerce/order/getOrderIdByDaySeq'
    # 美團Secret
    secret = '6322e9b60722123cd196729a9481223b' #演示secret 並非真的
    # 拼接sig前的字串
    befsig = url + '?' + param_sort(sing_data) + secret #把引數拼接成美團規定的格式
    sig = sig_mod5(befsig) #然後對拼接字串進行加密
    urls = url + '?' + param_sort(sing_data) + '&sig=' + sig #加密之後再次拼接請求地址
    print(urls)
    req_get = requests.get(urls) #發起請求
    result = req_get.json()
    return result['data'] #返回結果

總結

總的來說實現的方式還是比較簡單,可能難點就是要去讀懂他們的檔案,瞭解他們規則,今天的分享就到此為啦!!!

到此這篇關於使用python3.0 對接美團介面的實現範例的文章就介紹到這了,更多相關python3.0 對接美團介面內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com