首页 微博黄v号购买文章正文

下单系统怎么做(快递代下单怎么做)

微博黄v号购买 2022年06月28日 14:18 60 微博黄v号购买

目前应该是有很多小伙伴对于下单系统怎么做方面的信息比较感兴趣,现在小编就收集了一些与快递代下单怎么做相关的信息来分享给大家,感兴趣的小伙伴可以接着往下看,希望会帮助到你哦。

背景

下单系统怎么做(快递代下单怎么做)

前面几天,我们一起封装了 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制作自动化交易系统 -- 获取账户资产

本文结束,以上,就是下单系统怎么做,快递代下单怎么做的全部内容了,如果大家还想了解更多,可以关注我们哦。

发表评论

备案号:冀ICP备2022012033号-2 网站地图收录吧 微博黄v号购买图灵微博发卡平台