最近工作需要用到pdd的一些接口,官方竟然没有提供,python的sdk,于是就自己简单的写了一个订单接口的api。

希望能帮助到使用python的小伙伴:

#!/usr/bin/python3

# -*- coding: utf-8 -*-

# @Time : 2020/3/29 0021 下午 19:40

# @Author : xiaozhi!

# @FileName: pdd_api

# @Software: PyCharm

import time

import hashlib

import requests

from urllib.parse import urlencode

class PddApi:

host = "https://gw-api.pinduoduo.com/api/router?"

headers = {

"accept": "application/json"

}

def __init__(self, id=None, token=None, secret=None):

"""

初始化

"""

self.client_id = id

self.secret = secret

self.access_token = token

self.data_type = "JSON"

def sign_md5(self, params):

"""

对拼接好的字符串进行md5签名

"""

hl = hashlib.md5()

hl.update(params.encode(encoding='utf-8'))

return hl.hexdigest().upper()

def splice_str(self):

"""

升序排序请求参数,连接字符串,并在首尾加上client_secret

"""

self.timestamp = f"{time.time()}".split(".")[0]

pdd_dict = self.__dict__.copy()

secret = self.secret

del pdd_dict["secret"]

reverse_list = sorted([(k, str(v)) for k, v in pdd_dict.items()], key=lambda x:x[0])

reverse_list.insert(0, ("", secret))

reverse_list.append(("", secret))

reverse_list_str = list(map(lambda x: "".join(x), reverse_list))

params = "".join(reverse_list_str)

return params, pdd_dict

def urlencode_data(self, params, pdd_dict):

pdd_dict["sign"] = self.sign_md5(params)

result = urlencode(pdd_dict)

url = f"{self.host}{result}"

return url

def pdd_order_list_get(self, **kwargs):

"""

获取订单列表

kwargs: order_status=None, refund_status=None, start_confirm_at=None, end_confirm_at=None,

page=None, page_size=None

"""

res_type = "pdd.order.list.get"

self.type = res_type

for k, v in kwargs.items():

setattr(self, k, v)

params, pdd_dict = self.splice_str()

url = self.urlencode_data(params, pdd_dict)

return self.response_json(url=url)

def pdd_order_information_get(self, order_sn=None):

"""

获取订单详情

"""

res_type = "pdd.order.information.get"

self.order_sn = order_sn

self.type = res_type

params, pdd_dict = self.splice_str()

url = self.urlencode_data(params, pdd_dict)

return self.response_json(url=url)

def pdd_order_status_get(self, order_sns=None):

"""

订单状态

"""

res_type = "pdd.order.status.get"

self.order_sns = order_sns

self.type = res_type

params, pdd_dict = self.splice_str()

url = self.urlencode_data(params, pdd_dict)

return self.response_json(url=url)

def pdd_erp_order_sync(self, **kwargs):

"""

erp打单信息同步,

kwargs: order_sn=None, order_state=None, waybill_no=None, logistics_id=None

"""

res_type = "pdd.erp.order.sync"

self.type = res_type

for k, v in kwargs.items():

setattr(self, k, v)

params, pdd_dict = self.splice_str()

url = self.urlencode_data(params, pdd_dict)

return self.response_json(url=url)

def pdd_order_number_list_increment_get(self, **kwargs):

"""

订单增量接口

kwargs: is_lucky_flag=None, order_state=None, start_updated_at=None, end_updated_at=None,page_size=None,

page=None, refund_status=None

"""

res_type = "pdd.order.number.list.increment.get"

self.type = res_type

for k, v in kwargs.items():

setattr(self, k, v)

params, pdd_dict = self.splice_str()

url = self.urlencode_data(params, pdd_dict)

return self.response_json(url=url)

def response_json(self, url):

res = requests.post(url=url, headers=self.headers)

return res.json()

原文链接:https://blog.csdn.net/lz270978971/article/details/105200015

用python分析拼多多_python:拼多多订单接口api相关推荐

  1. python分析成都房租信息,以及利用高德API查找租房

    python分析成都租房信息,以及利用高德API查找租房 使用的技术 效果 爬虫 需要爬取的网页分析 爬虫源码 数据可视化 利用高德API查找租房 github地址 使用的技术 爬虫:Beautifu ...

  2. python抢拼多多_python:拼多多订单接口api

    最近工作需要用到pdd的一些接口,官方竟然没有提供,python的sdk,于是就自己简单的写了一个订单接口的api. 希望能帮助到使用python的小伙伴: #!/usr/bin/python3 # ...

  3. python:拼多多订单接口api

    最近工作需要用到pdd的一些接口,官方竟然没有提供,python的sdk,于是就自己简单的写了一个订单接口的api. 希望能帮助到使用python的小伙伴: #!/usr/bin/python3 # ...

  4. python订单详细教程-python:拼多多订单接口api

    最近工作需要用到pdd的一些接口,官方竟然没有提供,python的sdk,于是就自己简单的写了一个订单接口的api. 希望能帮助到使用python的小伙伴: #!/usr/bin/python3 # ...

  5. 如何用python实现电商订单接口API

    在现在这个共享主题大行的时代,对于软件来说,只有共享和开放才能发挥和开发软件代码最大的作用.而API正是为了这个主题出现的,API的出现大大加快了编程的速度,使得我们编程实现越来越复杂的功能成为了可能 ...

  6. python 拼多多_python 拼多多_拼多多2018校招编程题汇总 Python实现

    列表补全 在商城的某个位置有一个商品列表,该列表是由L1.L2两个子列表拼接而成.当用户浏览并翻页时,需要从列表L1.L2中获取商品进行展示.展示规则如下: 用户可以进行多次翻页,用offset表示用 ...

  7. 利用python分析电商_Python实现爬取并分析电商评论

    现如今各种APP.微信订阅号.微博.购物网站等网站都允许用户发表一些个人看法.意见.态度.评价.立场等信息.针对这些数据,我们可以利用情感分析技术对其进行分析,总结出大量的有价值信息.例如对商品评论的 ...

  8. python分析b站_Python爬取并分析B站最热排行榜,我发现了这些秘密

    现在大家的生活中,已经越来越离不开B站了,2020年的第一季度,B站月活跃用户达到了1.72亿,日活跃用户也已经突破了5000万个用户.源源不断的流量让B站的up主们也是粉丝数目不断暴涨,百万粉丝的u ...

  9. python分析股票数据_Python数据可视化——股票数据分析

    1.背景 GAFATA,它表示的是GOOGLE,AMAZON,FACEBOOK,APPLE,TENCENT,ALIBABA这六家互联网巨头的首字母缩写.本文主要分析GAFATA这六家公司股票近一年的的 ...

  10. python分析服务器日志_python实现web服务器日志分析脚本

    python日志分析脚本 用python可以实现大日志文件的分析,比如查到sql注入语句,然后看到IP,就可以改下脚本,用IP为特征取出日志,分析入侵过程. python比较shell脚本的优点是速度 ...

最新文章

  1. L1正则化为什么又叫做稀疏因子?
  2. VScode像Codeblocks一样,不启动调试和Debug直接运行
  3. Struts2显示double价格格式0.00
  4. 微软ping程序源代码完整版(附详细的注释)
  5. SVG矢量绘图 path路径详解(基本画法)
  6. java文件名命名的规则,Java文件名及其他命名规则
  7. EularProject 39:给周长推断构成直角三角形个数
  8. 2021非科班生的Java面试之路,java思维导图笔记
  9. 8.计蒜客ACM题库.A2019 Save the Room
  10. js实现table中td单元格合拼并求和
  11. Aspose.word基础
  12. does not exist or is not a readable directory
  13. 营业执照识别,三证合一
  14. 魔力宝贝手游版 服务器维护,魔力宝贝手游10月24日更新维护公告 各大更新内容...
  15. python工程师认证证书报考条件_Python工程师需要具备什么条件
  16. 必备干货,程序员进阶升级全攻略!
  17. [Linux] Linux不分区硬盘挂载
  18. 计算机的配置鼠标,鼠标设置,教您鼠标设置在电脑的什么位置
  19. 16_ZYNQ7020开发板gpio输入实验
  20. vue按照字母表排序

热门文章

  1. 项目管理-自上而下还是自下而上的沟通?
  2. Android——selector背景选择器的使用详解(二)
  3. ireport 用html页面上 图片怎么都出不来 全是红叉的处理办法
  4. hdu1002——A + B Problem II
  5. 网络配置管理大大减轻网络管理员的负担
  6. kafka日志清理策略
  7. libsvm 实现多分类原理
  8. 用c语言判断计算机是大端模式还是小端模式
  9. 代码整洁之道-第5章-格式-读书笔记
  10. worldcloud库的使用