使用python3.0 对接美团接口的实现示例

目录
  • 前言
  • 一、请求接口的基本系统参数解析
  • 二、具体参数的代码实现
  • 总结

提示:嗨咯,大家好,今天又来更新了  本章要和大家分享的是关于美团接口的实现方式以及部分代码的展示。

前言

首先我们去对接一个接口时首先要懂它的接口规则,也就是要读懂他的官方文档  地址如下:

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 对接美团接口内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用python3.0 对接美团接口的实现示例

    目录 前言 一.请求接口的基本系统参数解析 二.具体参数的代码实现 总结 提示:嗨咯,大家好,今天又来更新了  本章要和大家分享的是关于美团接口的实现方式以及部分代码的展示. 前言 首先我们去对接一个接口时首先要懂它的接口规则,也就是要读懂他的官方文档  地址如下: https://open-shangou.meituan.com/home/doc/bulkPurchasing/37 提示:以下是本篇文章正文内容,下面案例可供参考 一.请求接口的基本系统参数解析 解析:时间戳(timestamp

  • vue中对接Graphql接口的实现示例

    说明: 本文是本人正在搞nestjs+graphql+serverless训练营中对Graphql讲解的基础知识点,可能有点前后没对接上,文中提到的Graphql授权也是下小节介绍的 一.对原来的Express返回Graphql项目修改 本章节使用的代码是express返回Graphql的代码,在使用前要先对代码进行基本的配置,比如处理跨域问题(Graphql本质也是发送一个http请求,既然是这样在vue项目中自然存在跨域的问题,需要先处理) 1.安装跨域的包,并且配置中间件 npm inst

  • PHP 对接美团大众点评团购券(门票)的开发步骤

    一.功能简要介绍 1.根据需求,用户在美团大众点评中所购买的门票在自己的系统上可以核销,同时把核销信息存储到自己的系统里. 2.美团点评API文档地址:https://open.dianping.com/document/v2?rootDocId=5000 二.开发步骤: 1.用点评管家账号登录文档,相应文档说明:https://open.dianping.com/document/v2?docId=6000136&rootDocId=1000 2 .选好自己相应的应用型,审核通过之后,就可以用

  • python实现比对美团接口返回数据和本地mongo数据是否一致示例

    本文实例讲述了python实现比对美团接口返回数据和本地mongo数据是否一致.分享给大家供大家参考,具体如下: 应用背景:美团平台商品的上下架状态.库存.售价,和mongo库存储的是否一致. tools文件内容 # -*- coding: utf-8 -*- import hashlib import time import requests def get_md5(string):#返回字符串md5加密后的串 hl = hashlib.md5() hl.update(string.encod

  • Python3.0与2.X版本的区别实例分析

    本文通过列举出一些常见的实例来分析Python3.0与2.X版本的区别,是作者经验的总结,对于Python程序设计人员来说有不错的参考价值.具体如下: 做为一个前端开发的码农,最近通过阅读最新版的<A byte of Python>并与老版本的<A byte of Python>做对比后,发现Python3.0在某些地方还是有些改变的.之后再查阅官方网站的文档,总结出一下区别: 1. 如果你下载的是最新版的Python,就会发现所有书中的Hello World例子将不再正确. Py

  • 浅谈Python2.6和Python3.0中八进制数字表示的区别

    在Python2.x中表示八进制的方式有两种:以'0'开头和以'0o'(字母o)开头: Python2.7中: >>> 0100 64 >>> 0o100 64 >>> 而在Python3.x中则废弃了以'0'开头的表示方式,只支持'0o'开头的表示形式: Python3.4: >>> 0100 SyntaxError: invalid token >>> 0o100 64 以上这篇浅谈Python2.6和Pytho

  • 详谈Python2.6和Python3.0中对除法操作的异同

    Python中除法有两种运算符:'/'和'//':有三种类型的除法:传统除法.Floor除法和真除法. X / Y类型: 在Python2.6或者之前,这个操作对于整数运算会省去小数部分,而对于浮点数运算会保持小数部分:在Python3.0中变成真除法(无论任何类型都会保持小数部分,即使整除也会表示为浮点数形式). 示例代码: Python 2.7版本中结果: >>> 3/2 1 >>> 3/2.0 1.5 >>> 4/2 2 >>>

  • C#处理和对接HTTP接口请求的方法

    对于现在接口泛滥的时代,了解和处理接口对于一名程序员来说是很有必要的! 在对接时对于对方发过来的文档,需要认真看一遍,有疑问的比如加密等,需特别提出来和对方交接: 第一步,在对接接口时,你应该拿到服务端那边的key和partner,相当于用户和密码的意思:在配置文件里面配置好,如下图: 第二步,加密生成sign,一般是把加密特别抽出来作为一个方法,注意的是,需按照服务端指定的加密方式进行加密,至于是MD5还是其他加密,按规则来:例如: 第三步,拼接url,带上请求参数中间用&间隔,这个太简单了,

  • python3.0 模拟用户登录,三次错误锁定的实例

    python3.0 模拟用户登录,三次错误锁定的实例 实例如下所示: # -*- coding:utf-8 -*- #需求模拟用户登录,超过三次错误锁定不允许登陆 count = 0 #realname passwd Real_Username = "test" Real_Password = "test" #读取黑名单的内容 f = open('black_user','r') lock_file = f.read() f.close() Username = i

  • Python3.0 实现决策树算法的流程

    决策树的一般流程 检测数据集中的每个子项是否属于同一个分类 if so return 类标签 Else 寻找划分数据集的最好特征 划分数据集 创建分支 节点 from math import log import operator #生成样本数据集 def createDataSet(): dataSet = [[1,1,'yes'], [1,1,'yes'], [1,0,'no'], [0,1,'no'], [0,1,'no']] labels = ['no surfacing','flipp

随机推荐