下单系统怎么做(快递代下单怎么做)
目前应该是有很多小伙伴对于下单系统怎么做方面的信息比较感兴趣,现在小编就收集了一些与快递代下单怎么做相关的信息来分享给大家,感兴趣的小伙伴可以接着往下看,希望会帮助到你哦。
背景
前面几天,我们一起封装了 BigONE 提供的“身份验证”与“资产账户”部分的 API。
- 如何利用BigOne的API制作自动化交易系统 -- 身份验证
- 如何利用BigOne的API制作自动化交易系统 -- 获取账户资产
现在,离搭建咱们的自动化交易系统更近一步了。
本次,大家一起来封装有关“订单”的 API。
技术分析
BigOne 的订单系统包括:创建订单、取消指定订单、取消所有订单、获取指定订单、获取全部订单等,对应的 API 说明如下:
创建订单的 API:
create order
取消指定订单的 API:
cancle order
取消所有订单的 API:
cancle all orders
获取指定订单的 API:
get one order
获取全部订单的 API:
get all order
get all order
代码实现
Step1 对创建订单 API 的封装。
构造创建订单的参数结构 OrderCreate。
public class OrderCreate{/// <summary>/// market id,EOS-BTC/// </summary>public string market_id { get; set; }/// <summary>/// order side one of "ASK"/"BID"/// </summary>public string side { get; set; }/// <summary>/// order price string/// </summary>public string price { get; set; }/// <summary>/// order amount string, must larger than 0/// </summary>public string amount { get; set; }}
构造接收“创建订单”返回的数据结构 OrderResponse。
order
public class OrderResponseData{public string updated_at { get; set; }/// <summary>/// one of "FILLED"/"PENDING"/"CANCLED"/// </summary>public string state { get; set; }/// <summary>/// one of ASK/BID/// </summary>public string side { get; set; }/// <summary>/// order price/// </summary>public string price { get; set; }public string market_uuid { get; set; }/// <summary>/// id of market/// </summary>public string market_id { get; set; }public string inserted_at { get; set; }/// <summary>/// id of order/// </summary>public string id { get; set; }/// <summary>/// already filled amount/// </summary>public string filled_amount { get; set; }/// <summary>/// average price of the deal/// </summary>public string avg_deal_price { get; set; }/// <summary>/// order amount/// </summary>public string amount { get; set; }/// <summary>/// 格式化输出/// </summary>/// <returns></returns>public override string ToString(){DateTime dt1 = DateTime.Parse(inserted_at);DateTime dt2 = DateTime.Parse(updated_at);string result ="inserted_at:" + LSGOComFun.TranslateToStdDateTime(dt1) + ","+ "updated_at:" + LSGOComFun.TranslateToStdDateTime(dt2) + ","+ "market_id:" + market_id + ","+ "id:" + id + ","+ "state:" + state + ","+ "side:" + side + ","+ "price:" + price + ","+ "amount:" + amount;return result;}}public class OrderResponse{//{"errors":[{"message":"invalid token","code":10018}],"data":null}public OrderResponseData data { get; set; }public List<Errors> errors { get; set; }}
side属性:
- Ask:卖家喊出来的价(卖价)
- Bid:买家愿意出的最高价(买价)
创建订单的方法 CreatOrders。
public static List<OrderResponse> CreatOrders(List<OrderCreate> lst){if (lst == null)throw new ArgumentNullException();List<OrderResponse> result = new List<OrderResponse>();string url = ApiEntryPoint + "viewer/orders";for (int i = 0, len = lst.Count; i < len; i++){string token = "Bearer " + GetToken();RestClient client = new RestClient(url);RestRequest request = new RestRequest(Method.POST);request.AddHeader("cache-control", "no-cache");request.AddHeader("Content-Type", "application/json");request.AddHeader("authorization", token);string json = JsonConvert.SerializeObject(lst[i]);request.AddParameter("application/json", json,ParameterType.RequestBody);ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;IRestResponse response = client.Execute(request);string str = response.Content;StringReader sr = new StringReader(str);JsonTextReader jsonReader = new JsonTextReader(sr);JsonSerializer serializer = new JsonSerializer();OrderResponse order = serializer.Deserialize<OrderResponse>(jsonReader);if (order!=null)result.Add(order);}return result;}
Step2 对取消指定订单 API 的封装。
构造取消订单的参数结构 OrderCancel。
public class OrderCancel{/// <summary>/// id of the order/// </summary>public string order_id { get; set; }}
取消给定订单的方法 CancelOrder。
public static List<OrderResponse> CancelOrder(List<OrderCancel> lst){if (lst == null)throw new ArgumentNullException();List<OrderResponse> result = new List<OrderResponse>();for (int i = 0, len = lst.Count; i < len; i++){string token = "Bearer " + GetToken();string url = ApiEntryPoint + "viewer/orders/"+ lst[i].order_id + "/cancel";RestClient client = new RestClient(url);RestRequest request = new RestRequest(Method.POST);request.AddHeader("cache-control", "no-cache");request.AddHeader("Content-Type", "application/json");request.AddHeader("authorization", token);string json = JsonConvert.SerializeObject(lst[i]);request.AddParameter("application/json", json,ParameterType.RequestBody);ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;IRestResponse response = client.Execute(request);string str = response.Content;StringReader sr = new StringReader(str);JsonTextReader jsonReader = new JsonTextReader(sr);JsonSerializer serializer = new JsonSerializer();OrderResponse order = serializer.Deserialize<OrderResponse>(jsonReader);if (order != null)result.Add(order);}return result;}
Step3 对取消所有订单 API 的封装。
构造取消所有订单的参数结构 OrderAllCancel。
public class OrderAllCancel{public string market_id { get; set; }}
取消所有订单的方法 CancelAllOrder。
public static bool CancelAllOrder(List<OrderAllCancel> lst){if (lst == null)throw new ArgumentNullException();for (int i = 0, len = lst.Count; i < len; i++){string token = "Bearer " + GetToken();string url = ApiEntryPoint + "viewer/orders/cancel_all";RestClient client = new RestClient(url);RestRequest request = new RestRequest(Method.POST);request.AddHeader("cache-control", "no-cache");request.AddHeader("Content-Type", "application/json");request.AddHeader("authorization", token);string json = JsonConvert.SerializeObject(lst[i]);request.AddParameter("application/json", json,ParameterType.RequestBody);ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;IRestResponse response = client.Execute(request);if (response.StatusCode != HttpStatusCode.OK){return false;}}return true;}
Step4 对获取指定订单 API 的封装。
构造获取指定订单的参数结构 OrderGet。
public class OrderGet{/// <summary>/// id of the order/// </summary>public string order_id { get; set; }}
获取指定订单的方法 GetOrder。
public static List<OrderResponse> GetOrder(List<OrderGet> lst){if (lst == null)throw new ArgumentNullException();List<OrderResponse> result = new List<OrderResponse>();for (int i = 0, len = lst.Count; i < len; i++){string token = "Bearer " + GetToken();string url = ApiEntryPoint + "viewer/orders/"+ lst[i].order_id;RestClient client = new RestClient(url);RestRequest request = new RestRequest(Method.GET);request.AddHeader("cache-control", "no-cache");request.AddHeader("Content-Type", "application/json");request.AddHeader("authorization", token);string json = JsonConvert.SerializeObject(lst[i]);request.AddParameter("application/json", json,ParameterType.RequestBody);ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;IRestResponse response = client.Execute(request);string str = response.Content;StringReader sr = new StringReader(str);JsonTextReader jsonReader = new JsonTextReader(sr);JsonSerializer serializer = new JsonSerializer();OrderResponse order = serializer.Deserialize<OrderResponse>(jsonReader);if (order != null)result.Add(order);}return result;}
Step5 对获取全部订单 API 的封装。
构造获取全部订单的参数结构 orderAllGet。
public class OrderAllGet{public string market_id { get; set; }}
构造接收“获取全部订单”返回的数据结构 GetOrderAllJson。
public class OrderResponseData{public string updated_at { get; set; }/// <summary>/// one of "FILLED"/"PENDING"/"CANCLED"/// </summary>public string state { get; set; }/// <summary>/// one of ASK/BID/// </summary>public string side { get; set; }/// <summary>/// order price/// </summary>public string price { get; set; }public string market_uuid { get; set; }/// <summary>/// id of market/// </summary>public string market_id { get; set; }public string inserted_at { get; set; }/// <summary>/// id of order/// </summary>public string id { get; set; }/// <summary>/// already filled amount/// </summary>public string filled_amount { get; set; }/// <summary>/// average price of the deal/// </summary>public string avg_deal_price { get; set; }/// <summary>/// order amount/// </summary>public string amount { get; set; }/// <summary>/// 格式化输出/// </summary>/// <returns></returns>public override string ToString(){DateTime dt1 = DateTime.Parse(inserted_at);DateTime dt2 = DateTime.Parse(updated_at);string result ="inserted_at:" + LSGOComFun.TranslateToStdDateTime(dt1) + ","+ "updated_at:" + LSGOComFun.TranslateToStdDateTime(dt2) + ","+ "market_id:" + market_id + ","+ "id:" + id + ","+ "state:" + state + ","+ "side:" + side + ","+ "price:" + price + ","+ "amount:" + amount;return result;}}public class OrderResponse{//{"errors":[{"message":"invalid token","code":10018}],"data":null}public OrderResponseData data { get; set; }public List<Errors> errors { get; set; }}0
获取全部订单的方法 GetAllOrder。
public class OrderResponseData{public string updated_at { get; set; }/// <summary>/// one of "FILLED"/"PENDING"/"CANCLED"/// </summary>public string state { get; set; }/// <summary>/// one of ASK/BID/// </summary>public string side { get; set; }/// <summary>/// order price/// </summary>public string price { get; set; }public string market_uuid { get; set; }/// <summary>/// id of market/// </summary>public string market_id { get; set; }public string inserted_at { get; set; }/// <summary>/// id of order/// </summary>public string id { get; set; }/// <summary>/// already filled amount/// </summary>public string filled_amount { get; set; }/// <summary>/// average price of the deal/// </summary>public string avg_deal_price { get; set; }/// <summary>/// order amount/// </summary>public string amount { get; set; }/// <summary>/// 格式化输出/// </summary>/// <returns></returns>public override string ToString(){DateTime dt1 = DateTime.Parse(inserted_at);DateTime dt2 = DateTime.Parse(updated_at);string result ="inserted_at:" + LSGOComFun.TranslateToStdDateTime(dt1) + ","+ "updated_at:" + LSGOComFun.TranslateToStdDateTime(dt2) + ","+ "market_id:" + market_id + ","+ "id:" + id + ","+ "state:" + state + ","+ "side:" + side + ","+ "price:" + price + ","+ "amount:" + amount;return result;}}public class OrderResponse{//{"errors":[{"message":"invalid token","code":10018}],"data":null}public OrderResponseData data { get; set; }public List<Errors> errors { get; set; }}1
总结
至此,有关“订单”的 API 就全部封装完毕了。
下篇图文大家一起“基于网格交易法”来做一个简单的自动化交易系统。今天就到这里吧!See You!
相关图文:
- 如何利用 C# 实现 K 最邻近算法?
- 如何利用 C# 实现 K-D Tree 结构?
- 如何利用 C# + KDTree 实现 K 最邻近算法?
- 如何利用 C# 对神经网络模型进行抽象?
- 如何利用 C# 实现神经网络的感知器模型?
- 如何利用 C# 实现 Delta 学习规则?
- 如何利用 C# 爬取带 Token 验证的网站数据?
- 如何利用 C# 向 Access 数据库插入大量数据?
- 如何利用 C# 开发「桌面版百度翻译」软件!
- 如何利用 C# 开发「股票数据分析软件」(上)
- 如何利用 C# 开发「股票数据分析软件」(中)
- 如何利用 C# 开发「股票数据分析软件」(下)
- 如何利用 C# 爬取「财报说」中的股票数据?
- 如何利用 C# 爬取 One 持有者返利数据!
- 如何利用 C# 爬取Gate.io交易所的公告!
- 如何利用 C# 爬取BigOne交易所的公告!
- 如何利用 C# 爬取 ONE 的交易数据?
- 如何利用 C# 爬取「京东 - 计算机与互联网图书销量榜」!
- 如何利用 C# 爬取「当当 - 计算机与互联网图书销量榜」!
- 如何利用 C# 爬取「互动出版网 - 计算机图书销量榜」!
- 如何利用 C# 爬取「中国图书网 - 计算机与互联网图书销量榜」!
- 如何利用 C# 爬取「猫眼电影:热映口碑榜」及对应影片信息!
- 如何利用 C# 爬取「猫眼电影专业版:票房」数据!
- 如何利用 C# 爬取「猫眼电影:最受期待榜」及对应影片信息!
- 如何利用 C# 爬取「猫眼电影:国内票房榜」及对应影片信息!
- 如何利用 C# + Python 破解猫眼电影的反爬虫机制?
- 如何利用BigOne的API制作自动化交易系统 -- 身份验证
- 如何利用BigOne的API制作自动化交易系统 -- 获取账户资产
本文结束,以上,就是下单系统怎么做,快递代下单怎么做的全部内容了,如果大家还想了解更多,可以关注我们哦。
相关文章
- 详细阅读
-
电脑怎么弄视频壁纸(电脑怎么弄视频壁纸win10)详细阅读
去各大软件工具平台或者百度搜索“视频壁纸软件”,下载视频壁纸工具请点击输入图片描述 请点击输入图片描述 2 下载完成后进行安装,建议安装在非系统盘非C...
2022-09-12 77743
-
酷酷的滕那种文字视频怎么制作的(类似于酷酷的滕那种视频是怎么做的)详细阅读
酷酷的滕的视频怎么加的字幕? 展开 #xE768 我来答 分享 微信扫一扫 新浪微博 空间 举报 浏览30 次 可选中1个或多个下面的关键词,搜索相关...
2022-09-12 74648
-
cj视频制作(cj视频是什么意思)详细阅读
1、把照片做成视频,推荐用 数码大 师 简单易上手 人人都会用的精美相册制作软件 点击 添加相片 按钮,悉数导入相片,加上旁白注释文字特效音乐视频 点...
2022-09-12 66511
-
异地恋怎么视频做吗(异地恋开视频怎么做那个)详细阅读
总而言之,我认为异地恋是没有必要每天视频通话的,因为我和我的女朋友只是经常聊天,但并不会视频通话,而且如果我们相互思念对方的话,会在放假的时候一起出去...
2022-09-12 1322
-
彩视视频制作(彩视视频制作收费吗?)详细阅读
1打开彩视APP主页后,点击右下角的个人信息头像2进入到个人主页,点击彩视我的作品一项,选择一个视频,点击进去3接着点击播放窗口右下角的更多菜单,弹出...
2022-09-12 1518
-
小视频宣传片怎么制作(小视频宣传片怎么制作的)详细阅读
导读信息爆炸时代,我们每天接收成千上万条信息信息的几何式增长使企业在进行宣传推广时不得不绞尽脑汁推陈出新,吸引消费者的眼球短视频的兴起,为企业宣传推广...
2022-09-12 1346
- 详细阅读
发表评论