由于近期要做快手小店开放平台的对接,获取快手小店的订单,商品等进行管理.所以就需要用到接口.但是快手小店开放平台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上传文件好麻烦,要审核通过才能添加连接.我只是来分享的,不可以直接复制粘贴到当前编辑文章页面自动上传吗,上传后你该审核审核呗,非跳转到上传那才能上传,审核通过了才能外链...无语.
有需要的私信我发你吧



