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


    背景介绍

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

    项目介绍

    Build status NuGet NuGet

    地址

    概要

    支持基于 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
  • 相关阅读:
    tcp连接建立和断开
    端口状态说明 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT
    window IIS6/IIS7取消脚本执行权限,禁止运行脚本木马
    java 各种架构图汇总
    .NET平台常见技术框架整理汇总
    SQL Server中的Merge Into
    iText从LGPL改成AGPL历史来龙去脉
    工具系列 | 分布式日志管理graylog 实战
    目前博客使用的主题模板
    RLChina 文章
  • 原文地址:https://www.cnblogs.com/msdeveloper/p/open-pdd-net-sdk.html
Copyright © 2020-2023  润新知