背景介绍

近两年拼多多的发展非常迅速,即便口碑一般,也没有网页端,奈何我们已经全面小康,6亿月收入1000以下,9亿月收入2000以下,所以因为价格原因使用拼多多的用户也越来越多了。同样的,拼多多也开放了部分API接口,提供给开发者使用,开放平台也是一如既往的拼多多,没法跟淘宝、京东等相比,至今没有测试环境,官方也只提供了Java版本的SDK,C#及.Net在国内的存量用户还是有一些的,虽然整体上目前还是不乐观,但我想有脑子的都知道,像C#这么优秀的语言和日益精进的.Net Core,未来一定会有越来越多的人采用的,在此背景下,通过官方提供的API文档,我编写了拼多多开放平台.Net SDK。

项目介绍

地址

概要

支持基于 NETStandardv2.0 的项目,支持 .NetFramework 4.5.2+,C#8.0。

ASP.NET Core 项目请使用 Nuget 包 MSDev.PddOpenSdk.AspNetCore,可直接通过注入服务的方式使用。

其他类型使用 Nuget 包 MSDev.PddOpenSdk

源码项目说明

Console项目

该项目是通过官方接口获取并自动生成所有请求模型类、返回模型类以及请求服务类,生成后部分类名会有重名,更改成不同的类名即可。

执行方法,打开Console目录,然后执行dotnet run命令即可。

执行成功后,可使用Visual Studio自带的代码清理,对所有文件进行代码格式化操作。

PddOpenSdk 核心类库使用

支持 .Net Framework4.5.2Net Standard 2.0 ,安装 Nuget 包 MSDev.PddOpenSdk

使用示例:

  • 基本请求及错误信息
class Program
{
static async Task Main(string[] args)
{
// 设置ClientId与ClientSecret
PddCommonApi.ClientId = "ID";
PddCommonApi.ClientSecret = "Secret";
// 先使用code换取token
string code = "";
var authApi = new AuthApi();
await authApi.GetAccessTokenAsync(code); // 构造请求内容
var model = new GenDdkWeappQrcodeUrlRequestModel
{
PId = "123133",
GoodsIdList = new System.Collections.Generic.List<long> { 1122, 331323 }
};
var api = new DdkApi();
var result = await api.GenDdkWeappQrcodeUrlAsync(model); // 获取Pdd官方返回的错误信息
var errorResponse = _pdd.DdkApi.ErrorResponse.Value;
Console.WriteLine(errorResponse.Error_msg); }
}
  • 图片上传示例
    var filePath = Path.Combine("images", "logo.png");
byte[] bytes = System.IO.File.ReadAllBytes(filePath); // 构造图片上传内容
string base64 = "data:image/png;base64," + Convert.ToBase64String(bytes);
var model = new UploadGoodsImageRequestModel
{
Image = base64
};
var result = await _pdd.GoodsApi.UploadGoodsImageAsync(model)

ASP.NET Core 项目使用

先安装Nuget 包 MSDev.PddOpenSdk.AspNetCore

更多 示例代码

  • 在 Startup.cs 中注入服务
services.AddPdd(options =>
{
// 使用appsettings 配置你的ClientId等参数
options.ClientId = Configuration.GetSection("Pdd")["ClientId"];
options.CallbackUrl = Configuration.GetSection("Pdd")["RedirectUri"];
options.ClientSecret = Configuration.GetSection("Pdd")["ClientSecret"];
});
  • 然后在控制器使用注入服务
readonly PddService _pdd;
public YourController(PddService pdd)
{
_pdd = pdd;
}
  • 获取 AccessToken
/// <summary>
/// 测试获取token
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
public async Task<IActionResult> Callback(string code)
{
var token = await _pdd.AuthApi.GetAccessTokenAsync(code);
// 自行维护Token过期时间
return Content(token.AccessToken);
}
  • 调用其他接口

    获取 AccessToken 之后才能正常调用其他接口。

public async Task<ActionResult> Test()
{
// 构造请求模型
var requestModel = new SearchDdkGoodsRequestModel
{
SortType = 0,
WithCoupon = false
};
// 调用相应接口方法
var result = await _pdd.DdkApi.SearchDdkGoodsAsync(requestModel);
return Content(JsonConvert.SerializeObject(result));
}

所有方法名与官方文档保持一致,并有中文注释提醒,只是更改了命名规范,非常容易查找使用。

问题反馈

欢迎通过以下方式反馈问题:

  • 提交 GitHub Issues
  • Email: zpty@outlook.com(优先处理)
  • QQ 群:737822525

C#类库推荐 拼多多.Net SDK,开源免费!的更多相关文章

  1. PHP拼多多模式,砍价免费拿商品算法

      我12年开始做网站,对拼多多关注两三年了,一直对他们的拉新模式很感兴趣,下面我对砍价送礼品的算法跟大家分享下. 拼多多砍价免费拿商品有几个核心的东西: 1.需要拉新多人给商品,这个是直接在数据库配 ...

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

    本篇开始正式做功能,我在开发拼团提醒之前,拼多多并没有放出拼团人数不足就提醒卖家的功能. 有这个想法主要来源于朋友的抱怨,我想这应该是大部分卖家的心声吧. 经过分析,拿到了几个api,不要问我api怎 ...

  3. 1、ABPZero系列教程之拼多多卖家工具 前言

    此系列文章围绕着拼多多卖家工具来介绍ABPZero的使用,内容包括手机登录.手机注册.拼团提醒.微信公众号绑定帐号.有拼团发送消息到微信公众号(只要关注过微信公众号并已绑定系统帐号). 学习此系列必备 ...

  4. Java对接拼多多开放平台API(加密上云等全流程)

    前言 本文为[小小赫下士 blog]原创,搬运请保留本段,或请在醒目位置设置原文地址和原作者. 作者:小小赫下士 原文地址:Java对接拼多多开放平台API(加密上云等全流程) 本文章为企业ERP(I ...

  5. 10、ABPZero系列教程之拼多多卖家工具 拼团提醒逻辑功能实现

    上篇文章已经封装好了类库,现在继续实现功能,在ABPZero框架的基础上来实现一个完整的功能. Redis缓存 编写功能前先在本机安装好Redis,需要用到Redis做缓存,以下分享2个Windows ...

  6. 拼多多、饿了么、蚂蚁金服Java面试题大集合

    自己当初找工作时参加过众多一线互联网公司的Java研发面试,这段时间处于寒冬,然而前几天跳槽找工作,两天面了3家,已经拿了两个offer,觉得可以和大家分享下: 下面为拼多多.饿了么.蚂蚁金服.哈啰出 ...

  7. 3年Java开发10面阿里、京东、拼多多

    拼多多 地点:2号线娄山关路地铁站(金虹桥国际中心) 环境:新的写字楼,环境很好,有种高大上的感觉.大厅进入后需要登记,然后进闸机.电梯是需要刷卡才能使用的.会议室都是用城市名称命名,例如杭州.香港等 ...

  8. 2019 拼多多java面试笔试题 (含面试题解析)

    本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.拼多多等公司offer,岗位是Java后端开发,最终选择去了拼多多. 面试了很多家公司,感觉大部分公司考察的点都差 ...

  9. 28款GitHub最流行的开源机器学习项目,推荐GitHub上10 个开源深度学习框架

    20 个顶尖的 Python 机器学习开源项目 机器学习 2015-06-08 22:44:30 发布 您的评价: 0.0 收藏 1收藏 我们在Github上的贡献者和提交者之中检查了用Python语 ...

随机推荐

  1. ssh断连后,保持Linux后台程序连接

    #### ssh断连后,如何保持Linux后台程序继续运行?ssh断连后,要想运行在Linux服务器中的程序继续运行,就要用到screen技术.- ##### 新建`session` ```shell ...

  2. vue2和vue3的区别

    一.常用命令 vue -V 查看本地 vue 版本 二.官方文档 3.0:https://cli.vuejs.org/zh/ 三.创建文件 3.0:vue create 进入工程文件夹,创建项目. 2 ...

  3. Spark从入门到放弃---RDD

    什么是Spark? 关于Spark具体的定义,大家可以去阅读官网或者百度关于Spark的词条,在此不再赘述.从一个野生程序猿的角度去理解,作为大数据时代的一个准王者,Spark是一款主流的高性能分布式 ...

  4. web渗透测试之sqlmap拿到数据库信息

    通过扫描我们发现目标网站存在sql注入漏洞,我们访问该里面后发现该网站里面有个表格提交参数.确实存在没有过滤 使用sqlmap扫描发现漏洞的确存在,这里是布尔盲注 查看当前数据库名 查看表名得到以下信 ...

  5. 【Eclipse+PyDev】使用Python的IDE安装及配置详解

    转的文章 https://blog.csdn.net/jkwwwwwwwwww/article/details/51338230 https://blog.csdn.net/Jkwwwwwwwwww/ ...

  6. 记录一次CDH集群邮件报警功能的设置

    1.通用的配置CDH邮件报警设置 进入cloudera manager service页面,选择配置 左侧菜单Alert Publisher 勾选[启用电子邮件警报] 邮件服务协议smtp,如果使用s ...

  7. 洛谷 P3951 NOIP 2017 小凯的疑惑

    洛谷 P3951 NOIP 2017 小凯的疑惑 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付 ...

  8. Navicat12 for Mysql激活

    1      下载 注册机和Navicat网盘下载地址 链接:https://pan.baidu.com/s/1AFpQIlHCXVHc8OuBZ9PAlA  提取码:xvi2 2      安装 2 ...

  9. mybatis批量添加数据的三种方式

    原文地址:https://www.cnblogs.com/gxyandwmm/p/9565002.html

  10. Azure Storage 系列(一)入门简介

    一,引言 今天作为新的Azure 资源介绍的开篇,我们来学习一个新的服务,Azure Storage.众所周知,我们实际在开发过程中,会需要存储一些比如说日志,图片,等等,各种类型的数据.比如说存储图 ...