/// <summary> /// 通过此接口关闭此前已创建的订单,关闭后,用户将无法继续付款。仅能关闭创建后未支付的订单 /// </summary> /// <param name="req"><see cref="CloseOrderRequest"/></param> /// <returns><see cref="CloseOrderResponse"/></returns> public async Task <CloseOrderResponse> CloseOrder(CloseOrderRequest req) { JsonResponseModel <CloseOrderResponse> rsp = null; try { var strResp = await this.InternalRequest(req, "CloseOrder"); rsp = JsonConvert.DeserializeObject <JsonResponseModel <CloseOrderResponse> >(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return(rsp.Response); }
public async Task CloseOrder() { string nonce = Caster.WeChat.Common.Helper.GetNonceStr(32); string orderCode = "1582626752709"; var parameter = new CloseOrderRequest { OrderCode = orderCode, Nonce = nonce }; var result = await _web.PayService.CloseOrderAsync(parameter); Assert.True( result.ReturnCode == WeChatConstant.PaySuccess && result.ResultCode == WeChatConstant.PaySuccess, "result.ReturnCode ==WeChatConstant.PaySuccess && result.ResultCode ==WeChatConstant.PaySuccess"); }
public CloseOrderResponse CloseAllOrders(CloseOrderRequest request) { try { int orderCount = _mqlApi.OrdersTotal(); for (int i = orderCount - 1; i >= 0; i--) { if (!_mqlApi.OrderSelect(i, MqlApi.SELECT_BY_POS, MqlApi.MODE_TRADES)) { continue; } if (_mqlApi.OrderSymbol() != _symbol) { continue; } if (_mqlApi.OrderMagicNumber() != request.Magic) { continue; } int type = _mqlApi.OrderType(); // Close buys if (type == 0) { _mqlApi.RefreshRates(); CloseOrder(_mqlApi.OrderTicket(), _mqlApi.OrderLots(), _mqlApi.MarketInfo(_symbol, MqlApi.MODE_ASK), request.Slippage); continue; } // Close sells if (type == 2) { _mqlApi.RefreshRates(); CloseOrder(_mqlApi.OrderTicket(), _mqlApi.OrderLots(), _mqlApi.MarketInfo(_symbol, MqlApi.MODE_BID), request.Slippage); continue; } } return(new CloseOrderResponse()); } catch (Exception exception) { // Log exception throw; } }
public void Close() { TrenderOrderManager orderManager = new TrenderOrderManager(_mqlApi, _symbol); // Get list of orders List <Order> orders = orderManager.GetOrders(_symbol); // Close each order foreach (var order in orders) { CloseOrderRequest closeOrderRequest = new CloseOrderRequest { Magic = 1000000, Slippage = 3 }; orderManager.CloseAllOrders(closeOrderRequest); } }
/// <summary> /// Closes the order. --sunny /// </summary> /// <param name="id">The id.</param> /// <returns></returns> public bool CloseOrder(int id) { CloseOrderRequest request = new CloseOrderRequest() { OrderId = id }; CloseOrderResponse response = MyChannelFactory.CreateChannel().CloseOrder(request); if (response.IsFailed == true) { ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); log.Error("error", new Exception(response.Message)); log.Fatal("fatal", new Exception(response.Message)); throw (new Exception(response.Message)); } return(!response.IsFailed); }
/// <summary> /// 关闭订单 /// </summary> /// <param name="parameter">参数</param> /// <returns></returns> /// <exception cref="ArgumentNullException">传入的参数是null</exception> /// <exception cref="WeChatPayException">调用微信接口失败时返回的错误信息</exception> public async Task <PayResponse> CloseOrderAsync(CloseOrderRequest parameter) { if (parameter == null) { throw new ArgumentNullException(nameof(parameter)); } parameter.AppId = _appId; parameter.MchId = _mchId; parameter.Sign = WeChatSignHelper.CreateMd5Sign(parameter, _secretKey); string url = "https://api.mch.weixin.qq.com/pay/closeorder"; string body = XmlSerializeHelper.ObjectToXmlString(parameter); string result = await _client.ExecutePostRequest(url, new Dictionary <string, string>(), body, "xml/text"); var response = XmlSerializeHelper.StringToObject <PayResponse>(result); Check(response); return(response); }
//public static void CopyToEntity(Order order, CancelOrderRequest request) //{ // order.ConsID = request.user_id; // auth_token // order.OrdrID = request.order_id; //} public static void CopyToEntity(Order order, CloseOrderRequest request) { order.ConsID = request.user_id; // auth_token order.OrdrID = request.order_id; }
static void Main(string[] args) { /************************************Login***************************************************/ WsLoginClient bOSLogin2 = new WsLoginClient(); UserLogin2Request loginRequest = new UserLogin2Request { AWorkstationAK = "VTA.WKS19", AUserName = "******", APassword = "******" }; UserLogin2Response response = bOSLogin2.UserLogin2(loginRequest); string login_response = response.@return; Console.WriteLine(login_response); goto Event; //goto Performance; //goto Save; //goto B2B; //goto Checkout; //goto Close; //goto Print; //goto Logout; /************************************Event***************************************************/ Event: WsAPIEventClient bosEvent = new WsAPIEventClient(); FindAllEventsRequest eventsRequest = new FindAllEventsRequest(); FindAllEventsResponse eventsResponse = bosEvent.FindAllEvents(eventsRequest); FINDALLEVENTSRESP fINDALLEVENTSRESP = eventsResponse.@return; string event_response = fINDALLEVENTSRESP.EVENTLIST.ToString(); /************************************Performance***************************************************/ Performance: WsAPIPerformanceClient wsAPIPerformanceClient = new WsAPIPerformanceClient(); SEARCHPERFORMANCEREQ sEARCHPERFORMANCEREQ = new SEARCHPERFORMANCEREQ(); sEARCHPERFORMANCEREQ.EVENTAK = "VTA.EVN3"; sEARCHPERFORMANCEREQ.SELLABLE = true; SearchPerformanceRequest searchPerformanceRequest = new SearchPerformanceRequest(sEARCHPERFORMANCEREQ); SearchPerformanceResponse searchPerformanceResponse = wsAPIPerformanceClient.SearchPerformance(searchPerformanceRequest); SEARCHPERFORMANCERESP sEARCHPERFORMANCERESP = searchPerformanceResponse.@return; string performance_response = sEARCHPERFORMANCERESP.PERFORMANCELIST.ToString(); /************************************Save account***************************************************/ Save: WsAPIAccountClient wsAPIAccountClient = new WsAPIAccountClient(); Accounts.FIELDLISTFIELD[] fIELDLISTFIELDs = new Accounts.FIELDLISTFIELD[3]; Accounts.FIELDLISTFIELD fIELDLISTFIELD1 = new Accounts.FIELDLISTFIELD(); fIELDLISTFIELD1.OBJTYPE = 1; fIELDLISTFIELD1.VALUE = "ironman";//firstname Accounts.FIELDLISTFIELD fIELDLISTFIELD2 = new Accounts.FIELDLISTFIELD(); fIELDLISTFIELD2.OBJTYPE = 548; fIELDLISTFIELD2.VALUE = "tony1234";//firstname Accounts.FIELDLISTFIELD fIELDLISTFIELD3 = new Accounts.FIELDLISTFIELD(); fIELDLISTFIELD3.OBJTYPE = 549; fIELDLISTFIELD3.VALUE = "avengers";//firstname fIELDLISTFIELDs[0] = fIELDLISTFIELD1; fIELDLISTFIELDs[1] = fIELDLISTFIELD2; fIELDLISTFIELDs[2] = fIELDLISTFIELD3; SAVEACCOUNTREQ sAVEACCOUNTREQ = new SAVEACCOUNTREQ { FIELDLIST = fIELDLISTFIELDs, DMGCATEGORYAK = "VTA.DMGCAT29" }; SaveAccountRequest saveAccountRequest = new SaveAccountRequest(sAVEACCOUNTREQ); SaveAccountResponse saveAccountResponse = wsAPIAccountClient.SaveAccount(saveAccountRequest); SAVEACCOUNTRESP sAVEACCOUNTRESP = saveAccountResponse.@return; string save_response = sAVEACCOUNTRESP.BASICINFO.ACCOUNTAK; /************************************B2B Login***************************************************/ B2B: B2BAccountLogInRequest b2BAccountLogInRequest = new B2BAccountLogInRequest { ADmgCatCode = "Guests", AUsername = "******", APsw = "Iambatma" }; B2BAccountLogInResponse b2BAccountLogInResponse = wsAPIAccountClient.B2BAccountLogIn(b2BAccountLogInRequest); /************************************Checkout***************************************************/ Checkout: WsAPIOrderClient wsAPIOrderClient = new WsAPIOrderClient(); CHECKOUTREQ cHECKOUTREQ = new CHECKOUTREQ(); ITEMLISTITEM[] iTEMLISTITEMs = new ITEMLISTITEM[1]; ITEMLISTITEMPERFORMANCE[] iTEMLISTITEMPERFORMANCEs = new ITEMLISTITEMPERFORMANCE[1]; iTEMLISTITEMPERFORMANCEs[1].AK = "VTA.EVN4.PRF100"; iTEMLISTITEMs[1].AK = "VTA.EVN1.MCC28"; iTEMLISTITEMs[1].QTY = "1"; iTEMLISTITEMs[1].PERFORMANCELIST = iTEMLISTITEMPERFORMANCEs; Orders.ACCOUNTSAVEBASE aCCOUNTSAVEBASE = new Orders.ACCOUNTSAVEBASE { AK = "99901920000019" }; ORDERSTATUS oRDERSTATUS = new ORDERSTATUS { APPROVED = true, PAID = true, ENCODED = true, VALIDATED = true, COMPLETED = true }; RESERVATIONBASE rESERVATIONBASE = new RESERVATIONBASE { RESERVATIONOWNER = aCCOUNTSAVEBASE }; cHECKOUTREQ.SHOPCART = new SHOPCART { ITEMLIST = iTEMLISTITEMs, RESERVATION = rESERVATIONBASE, FLAG = oRDERSTATUS }; CheckOutRequest checkOutRequest = new CheckOutRequest(cHECKOUTREQ); CheckOutResponse checkOutResponse = wsAPIOrderClient.CheckOut(checkOutRequest); CHECKOUTRESP cHECKOUTRESP = checkOutResponse.@return; string checkout_response_sale_ak = cHECKOUTRESP.SALE.AK; float checkout_response_sale_gross = cHECKOUTRESP.SALE.TOTAL.GROSS; /************************************Close_order***************************************************/ Close: Orders.PAYMENTLISTBASEPAYMENTINFO[] pAYMENTLISTBASEPAYMENTINFOs = new Orders.PAYMENTLISTBASEPAYMENTINFO[1]; pAYMENTLISTBASEPAYMENTINFOs[1].CODE = ""; pAYMENTLISTBASEPAYMENTINFOs[1].AMOUNT = checkout_response_sale_gross; CLOSEORDERREQ cLOSEORDERREQ = new CLOSEORDERREQ { AK = checkout_response_sale_ak, PAYMENTINFOLIST = pAYMENTLISTBASEPAYMENTINFOs, }; CloseOrderRequest closeOrderRequest = new CloseOrderRequest(cLOSEORDERREQ); CloseOrderResponse closeOrderResponse = wsAPIOrderClient.CloseOrder(closeOrderRequest); CLOSEORDERRESP cLOSEORDERRESP = closeOrderResponse.@return; string close_order_sale_ak = cLOSEORDERRESP.SALE.AK; /************************************Print Ticket***************************************************/ Print: WsAPITicketClient wsAPITicketClient = new WsAPITicketClient(); PrintPdfTicketRequest printPdfTicketRequest = new PrintPdfTicketRequest { ASaleAk = "VTA.WKS19.200527.SAL1" //VTA.WKS19.200527.SAL1 }; PrintPdfTicketResponse printPdfTicketResponse = wsAPITicketClient.PrintPdfTicket(printPdfTicketRequest); PRINTPDFTICKETRESP pRINTPDFTICKETRESP = printPdfTicketResponse.@return; byte[] pdf_string = pRINTPDFTICKETRESP.PDF; /************************************Logout***************************************************/ Logout: UserLogoutRequest userLogoutRequest = new UserLogoutRequest(); UserLogoutResponse userLogoutResponse = bOSLogin2.UserLogout(userLogoutRequest); }
public NegotiatedContentResult <CloseOrderResponse> PostCloseOrder([FromBody] CloseOrderRequest request) { CloseOrderResponse resp = _ordersServices.CloseOrder(request); return(Content(HttpStatusCode.OK, resp)); }
public Task <CloseOrderResponse> CloseOrderAsync(CloseOrderRequest request) { return(RequestAsync <CloseOrderResponse>("https://api.mch.weixin.qq.com/pay/closeorder", RequestProperties, request)); }