【C#类库推荐 拼多多APIitem_get 根据ID取商品详情item_search 根据关键词取商品列表item_search_data 获得搜索词统计item_search_s,开源免费】

本文介绍了拼多多API接口的现状,包括其JavaSDK的限制,并详细阐述了作者编写的.NETSDK项目,包括支持的框架、安装方法、使用示例和代码结构。还提供了图片上传和ASP.NETCore集成的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景介绍

近两年拼多多的发展非常迅速,即便口碑一般,也没有网页端,奈何我们已经全面小康,6亿月收入1000以下,9亿月收入2000以下,所以因为价格原因使用拼多多的用户也越来越多了。

同样的,拼多多也开放了部分API接口,提供给开发者使用,开放平台也是一如既往的拼多多,没法跟淘宝、京东等相比,至今没有测试环境,官方也只提供了Java版本的SDK,C#及.Net在国内的存量用户还是有一些的,虽然整体上目前还是不乐观,但我想有脑子的都知道,像C#这么优秀的语言和日益精进的.Net Core,未来一定会有越来越多的人采用的,在此背景下,通过官方提供的API文档,我编写了拼多多开放平台.Net SDK。

项目介绍

地址

Github:https://github.com/niltor/open-pdd-net-sdk

nuget

  • MSDev.PddOpenSdk v2.0

    https://www.nuget.org/packages/MSDev.PddOpenSdk/,核心类库,支持.Net4.5.2及NetStandard2.0。

  • MSDev.PddOpenSdk.AspNetCore v2.0

    https://www.nuget.org/packages/MSDev.PddOpenSdk.AspNetCore/,适用于 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.2及Net 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。

更多示例代码

https://github.com/niltor/open-pdd-net-sdk/tree/dev/PddOpenSdk/Sample。

  • 在 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));
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值