栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

手撸的C#.net2.0环境下写的快手小店开放平台的SDK提供下载

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

手撸的C#.net2.0环境下写的快手小店开放平台的SDK提供下载

由于近期要做快手小店开放平台的对接,获取快手小店的订单,商品等进行管理.所以就需要用到接口.但是快手小店开放平台open.kwaixiaodian.com只有java的sdk,我们开发的后端都是用的C#,而且是低版本.net环境.所以手撸了一套SDK.

包含目前的93个接口(完整)和121个类(完整)

一个下载订单的Request实体类

using System;
using System.Collections.Generic;
using System.Text;
using KuaishouSDK.Domain;
namespace KuaishouSDK.RequestAndResponse.订单API
{
	/// 
	/// 获取订单列表(游标方式)
	/// 获取订单列表(游标方式)
	/// 授权:需要
	/// 
	public class OpenSellerOrderPcursorListRequest : BaseKSRequest
	{
		public override string GetApiName()
{
			return "open.seller.order.pcursor.list";
		}
		Int32 _type;
		/// 
		/// 订单状态,0未知 1 全部 2 待付款 3 待发货 4 待收货(已发货)5 已收货 6 交易成功订单 7 已关闭订单
		/// 是否必须:是
		/// 
		public Int32 type { get { return _type; } set { _type = value; } }

		Int64 _currentPage;
		/// 
		/// 当前页
		/// 是否必须:是
		/// 
		public Int64 currentPage { get { return _currentPage; } set { _currentPage = value; } }

		Int32 _pageSize;
		/// 
		/// 每页请求数量  最多一页100条
		/// 是否必须:是
		/// 
		public Int32 pageSize { get { return _pageSize; } set { _pageSize = value; } }

		Nullable _sort;
		/// 
		/// 1时间降序 2时间升序  默认降序
		/// 是否必须:否
		/// 
		public Nullable sort { get { return _sort; } set { _sort = value; } }

		Nullable _queryType;
		/// 
		/// 1按创建时间查找  2按更新时间查找  默认创建时间
		/// 是否必须:否
		/// 
		public Nullable queryType { get { return _queryType; } set { _queryType = value; } }

		Int64 _beginTime;
		/// 
		/// 订单生成时间的开始时间,单位毫秒, 不能小于90天前,且需要小于结束时间
		/// 是否必须:是
		/// 
		public Int64 beginTime { get { return _beginTime; } set { _beginTime = value; } }

		Int64 _endTime;
		/// 
		/// 订单生成时间的截止时间,单位毫秒, 不能小于90天前,且与开始时间的时间范围不大于1天  (与开始时间的时间范围建议做成随时可配置,该范围可能在活动期间随时变化,比如变成小时级或者分钟级)。受春节活动影响,在2.1 10:00~2.5 10:00以及2.10 10:00~2.19 10:00期间订单的查询时间范围从1天缩短至1小时。
		/// 是否必须:是
		/// 
		public Int64 endTime { get { return _endTime; } set { _endTime = value; } }

		Nullable _cpsType;
		/// 
		/// 分销类型 0-全部 1-普通订单 2-分销订单
		/// 是否必须:否
		/// 
		public Nullable cpsType { get { return _cpsType; } set { _cpsType = value; } }

		String _pcursor;
		/// 
		/// 游标内容  第一次传空串,之后传上一次的pcursor返回值,若返回“nomore”则标识到底
		/// 是否必须:是
		/// 
		public String pcursor { get { return _pcursor; } set { _pcursor = value; } }
	}
}

一个根据游标下载订单的Response实体类

using System;
using System.Collections.Generic;
using System.Text;
using KuaishouSDK.Domain;
namespace KuaishouSDK.RequestAndResponse.订单API
{
	/// 
	/// 获取订单列表(游标方式)
	/// 获取订单列表(游标方式)
	/// 授权:需要
	/// 
	public class OpenSellerOrderPcursorListResponse : KSResponse
	{
		Nullable _result;
		/// 
		/// 返回码
		/// 
		Nullable result { get { return _result; } set { _result = value; } }

		MerchantOrderListData _data;
		/// 
		/// 订单列表
		/// 
		public MerchantOrderListData data { get { return _data; } set { _data = value; } }

		String _error_msg;
		/// 
		/// 错误码描述
		/// 
		public String error_msg { get { return _error_msg; } set { _error_msg = value; } }
	}
}

部分数据类型的实体类

using System;
using System.Collections.Generic;
using System.Text;

namespace KuaishouSDK.Domain
{
	/// 
	/// 订单列表
	/// 
	public class MerchantOrderListData
	{
		Nullable _currentPage;
		/// 
		/// 当前页,仅第一次调用返回值有效
		/// 
		public Nullable currentPage { get { return _currentPage; } set { _currentPage = value; } }

		Nullable _pageSize;
		/// 
		/// 一页数据量
		/// 
		public Nullable pageSize { get { return _pageSize; } set { _pageSize = value; } }

		Nullable _totalPage;
		/// 
		/// 总页数,仅第一次调用返回值有效
		/// 
		public Nullable totalPage { get { return _totalPage; } set { _totalPage = value; } }

		Nullable _totalSize;
		/// 
		/// 总数仅第一次调用返回值有效
		/// 
		public Nullable totalSize { get { return _totalSize; } set { _totalSize = value; } }

		Nullable _beginTime;
		/// 
		/// 开始时间
		/// 
		public Nullable beginTime { get { return _beginTime; } set { _beginTime = value; } }

		Nullable _endTime;
		/// 
		/// 结束时间
		/// 
		public Nullable endTime { get { return _endTime; } set { _endTime = value; } }

		String _pcursor;
		/// 
		/// 游标,nomore代表分页到底
		/// 
		public String pcursor { get { return _pcursor; } set { _pcursor = value; } }

		List _orderInfoList;
		/// 
		/// 订单列表
		/// 
		public List orderInfoList { get { return _orderInfoList; } set { _orderInfoList = value; } }
	}
}


使用方法

 首先,

要通过快手小店开放平台的授权管理页面 找到授权店铺的授权code复制过来,然后通过拼接url的方式获取token

根据token发起请求.跟现在主流的Restful的API请求方式基本都一样.如下是token请求的获取连接.因为比较简单也基本不会变化,所以就没写到sdk里面做成一个方法.

https://open.kwaixiaodian.com/oauth2/access_token?app_id=你的appid&grant_type=code&app_secret=你的appsecret&code=复制来的授权码
            

调用Api的相关代码

OpenSellerOrderPcursorListRequest orderListGetReq = new OpenSellerOrderPcursorListRequest();
            orderListGetReq.type = 3;
            orderListGetReq.pcursor = "";
            orderListGetReq.pageSize = 100;
            orderListGetReq.currentPage = 1;
            
            DateTime end = DateTime.Now;
            DateTime start = end.AddDays(-7);

            orderListGetReq.beginTime = (long)(start - new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds;
            orderListGetReq.endTime = (long)(end - new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds;
            orderListGetReq.queryType = 1;
            orderListGetReq.cpsType = 0;

            OpenSellerOrderPcursorListResponse ordersListGetRsp = client.Execute(orderListGetReq, session);
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine(ordersListGetRsp.Body);
            Console.ResetColor();

 

字段的所有的注释都是全的,但是重载了一下部分接口.比如字段名称为opreator的,改成了Opreator,因为C#中不支持变量名称为系统标识符,就好比你不能定义一个变量名字为int一样.


接口调用方法:

按照如下方式写个调用的测试函数或者是直接用到项目里面即可.

main函数演示如何创建sdk请求器对象,并且演示如何获取店铺信息,订单信息,服务订购情况等接口.

using KuaishouSDK;
using KuaishouSDK.RequestAndResponse.订单API;
using KuaishouSDK.RequestAndResponse.用户API;
using KuaishouSDK.RequestAndResponse.服务市场API;
using KuaishouSDK.RequestAndResponse.商品API;
using System;
using System.Collections.Generic;
using System.Text;

namespace 快手SDK测试CMD
{
    class Program
    {
        static void Main(string[] args)
        {
            DefaultKSClient client = new DefaultKSClient("https://open.kwaixiaodian.com", "你自己的appid写在这", "你自己的appsecret写在这", "你自己的signsecret写在这");
            string session = "通过拼接授权连接获取到的token写在这";
            OpenUserSellerGetRequest req = new OpenUserSellerGetRequest();
            OpenUserSellerGetResponse rsp = client.Execute(req, session);
            if (rsp.result>1)
            {
                Console.WriteLine("发生错误{0}", rsp.result);
                Console.ReadLine();
            }
            Console.WriteLine(string.Format("用户ID:{0}rnOpenId:{1}rn头像地址:{2}", rsp.data.sellerId,rsp.data.openId, rsp.data.head));
            //Console.ReadLine();

            OpenSellerOrderPcursorListRequest orderListGetReq = new OpenSellerOrderPcursorListRequest();
            orderListGetReq.type = 3;
            orderListGetReq.pcursor = "";
            orderListGetReq.pageSize = 100;
            orderListGetReq.currentPage = 1;
            
            DateTime end = DateTime.Now;
            DateTime start = end.AddDays(-7);

            orderListGetReq.beginTime = (long)(start - new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds;
            orderListGetReq.endTime = (long)(end - new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds;
            orderListGetReq.queryType = 1;
            orderListGetReq.cpsType = 0;

            OpenSellerOrderPcursorListResponse ordersListGetRsp = client.Execute(orderListGetReq, session);
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine(ordersListGetRsp.Body);
            Console.ResetColor();



            OpenServiceMarketBuyerServiceInfoRequest breq = new OpenServiceMarketBuyerServiceInfoRequest();
            breq.buyerOpenId = rsp.data.openId;

            OpenServiceMarketBuyerServiceInfoResponse brsp = client.Execute(breq, session);
            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.WriteLine(brsp.Body);
            Console.ResetColor();


            OpenServiceMarketOrderListRequest olreq = new OpenServiceMarketOrderListRequest();
            olreq.endTime = (long)(DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds;
            olreq.pageNum = 1;
            olreq.pageSize = 100;
            olreq.queryType = 1;
            olreq.startTime = olreq.endTime - (30L * 24 * 60 * 60 * 1000);
            OpenServiceMarketOrderListResponse olrsp = client.Execute(olreq, session);

            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine(olrsp.Body);
            Console.ResetColor();


            OpenItemListGetRequest itemsGetReq = new OpenItemListGetRequest();
            itemsGetReq.pageNumber = 1;
            itemsGetReq.pageSize = 20;
            OpenItemListGetResponse itemsGetRsp = client.Execute(itemsGetReq, session);

            Console.ForegroundColor = ConsoleColor.DarkBlue;
            Console.WriteLine(itemsGetRsp.Body);
            Console.ResetColor();

            Console.ReadLine();
        }
    }
}

无语,CSDN上传文件好麻烦,要审核通过才能添加连接.我只是来分享的,不可以直接复制粘贴到当前编辑文章页面自动上传吗,上传后你该审核审核呗,非跳转到上传那才能上传,审核通过了才能外链...无语.

有需要的私信我发你吧

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909054.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号