2020年9月15日星期二

C#类库推荐 拼多多.Net SDK,开源免费!

拼多多开放平台 .net c# 版 sdk。

背景介绍

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

项目介绍

Build status NuGet NuGet

地址

  • Github
  • nuget
    • MSDev.PddOpenSdk v2.0,核心类库,支持.Net4.5.2及NetStandard2.0。
    • MSDev.PddOpenSdk.AspNetCore v2.0,适用于 AspNetCore 项目。

概要

支持基于 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,开源免费!askme联动优势亚马逊后台介绍及简单操作分享一个可以快速查找电脑文件的工具中国跨境电商有优势的产品类目有哪些?出口国外,我们国家有什么好的产品?无奈辞职or继续蹲坑,跨境老铁们的4月是怎样的?socialbook助力品牌网红营销站外引流操作技巧方法

没有评论:

发表评论