python:拼多多订单接口api

最近工作需要用到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.51cto.com/6298641/2483100

时间: 2024-10-21 09:53:22

python:拼多多订单接口api的相关文章

公众号搭建淘宝、京东、拼多多查券平台

双十一之前终于把淘宝客公众号搭建好了,虽然耗时不少,但还是蛮有成就感的,能不能赚钱就另外一回事了. 我这里用到了淘宝联盟api权限.拼多多平台接口api.京东申请比较麻烦就没有申请,所以京东使用了第三方免费接口,各联盟账号api权限申请我就不赘述了,有疑问的话可以在下面留言,或加我微信公众号"网购有券"联系我. 淘宝找券实现 原理: 通过用户手淘分享的商品信息,信息中包含商品关键字和链接,使用商品关键字通过淘宝 通用物料搜索API 接口查询一批商品: 然后通过分享信息中的淘宝链接htt

拼多多电子面单模板开通后怎么打印

拼多多商家在店铺后台申请拼多多电子面单,申请完成后,使用易掌柜配置店铺下载订单批量打印.需要快速打印订单的,首先下载易掌柜,配置店铺,批量下载订单打印.拼多多发布拼多多电子面单后,要求所有商家使用拼多多电子面单打印发货. 开通拼多多电子面单,商家在拼多多商家后台申请即可,完成申请操作,等待平台审核通过就可以使用了. 易掌柜操作打单流程: 1.首先下载易掌柜 2.点击登录易掌柜 3.在易掌柜界面配置拼多多店铺 4.点击"拼多多",进入打单界面 5.点击"下载订单",批

(appium+python)UI自动化_07_UI自动化实例【拼多多搜索商品为例】

前言 初学UI自动化的小伙伴,在配置好appium+python自动化环境后,往往不知道如何下手实现自动化.小编在初期学习的时候也有这种疑惑,在此以拼多多搜索为实例,展示下appium是如何实现自动化的. 前提:已安装配置好appium+python自动化环境 一.连接手机启动app 1,连接手机 -手机USB连接电脑 -手机打开开发者模式.USB调试功能 2,基础信息配置 基础连接信息如下(以微信app为例): 'platformName': 操作平台'deviceName': 设备名称'pl

Amzon MWS API开发之订单接口

Amzon MWS API开发之订单接口 Amazon订单接口是Amazon MWS 开发接口中的一大块,我们可以通过接口调用来获得订单数据. 在调用接口之前,首先我们要获得相关店铺商家的店铺密钥等信息.如下: 在此我将所有信息定义在一个类中,采用序列化的方式,方便存取值. 1 /// <summary> 2 /// 账户信息 3 /// </summary> 4 [Serializable] 5 public class AccountConfig : BaseConfig<

拼多多可信吗?真有亿万用户在用?Python分析50w数据,难以置信

一.缘起 二.我们获取了多少商品条目? 49.78万,大约50万条.这些数据全不全,肯定不全,但是基本上覆盖了拼多多的绝大部分在售商品,再退一步,数据的量级应该是没错的(数据获取). 进群:125240963   即可获取数十套PDF哦!要源码也可以私信 三.这些商品总共卖出了多少钱? 288亿是一个什么概念呢,我们搜索了京东财报的公开新闻: 京东2017年GMV接近1.3万亿 净利润50亿元 可以估计去年京东的月均GMV大概是1100亿,电商的GMV同比可达50%+增长,胡乱估计京东2018月

9、ABPZero系列教程之拼多多卖家工具 拼团提醒类库封装

本篇开始正式做功能,我在开发拼团提醒之前,拼多多并没有放出拼团人数不足就提醒卖家的功能. 有这个想法主要来源于朋友的抱怨,我想这应该是大部分卖家的心声吧. 经过分析,拿到了几个api,不要问我api怎么拿到的,这不是本系列的内容. 接口1:http://apiv4.yangkeduo.com/mall/{0}/info?pdduid=0(传入店铺编号,可以获取店铺资料) 接口2:http://apiv4.yangkeduo.com/v2/mall/{0}/goods?page=1&size=50

常用电子面单接口API及对接攻略(快递鸟、菜鸟、顺丰)

现在电商行业发展很快,很多企业订单量大,手写快递单比较慢,所以开通对接电子面单打印API接口就成了很多企业迫切需要的功能: 关于电子面单: 电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务.通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍.电子面单以接口形式嵌入到自己的系统.网站上,可以在自己的平台操作打印电子面单. 电子面单的应用主要包括电子面单接口和电子面单服务等内容,通过整合平台优化服务,可减少电子面单所受限制,使电子面单的应用更广泛使用更便捷优质.电子面单的单号是卖家向合

Python怎么测试异步接口

当业务处理比较耗时时, 接口一般会采用异步处理的方式, 这种异步处理的方式又叫Future模式. 一般流程 当你请求一个异步接口,接口会立刻返回你一个结果告诉你已经开始处理,结果中一般会包含一个任务id类似的东西用于追踪结果, 另外会提供一个查询结果的接口, 当结果未处理完查询接口会返回相应的"未完成"状态, 如果已经处理完,则会返回相应的数据. 处理方法 异步接口我们一般采取轮询的方法,每隔一定时间间隔取请求一下查询结果的接口,直到接口返回的状态是已完成/查询到指定数据或超时 如果异

Atitit 图像处理之编程之类库调用的接口api cli gui ws rest &#160;attilax大总结.docx

Atitit 图像处理之编程之类库调用的接口api cli gui ws rest  attilax大总结.docx 1. 为什么需要接口调用??1 1.1. 为了方便集成复用模块类库1 1.2. 嫁接不同的语言与类库,以及嵌入dsl1 1.3. 方便跨机器,跨开发板,跨硬件,跨运行环境的代码复用2 2. 接口api的历史2 2.1. 发展历程2 2.2. API 这个类库默认提供的接口,要求同语言调用一般2 2.3. Cli接口 命令行接口.单机跨语言接口(推荐比较常用)3 2.4. 图形用户