/// <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);
        }
Пример #2
0
        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");
        }
Пример #3
0
        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;
            }
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        /// <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);
        }
Пример #6
0
        /// <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);
        }
Пример #7
0
        //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;
        }
Пример #8
0
        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);
        }
Пример #9
0
        public NegotiatedContentResult <CloseOrderResponse> PostCloseOrder([FromBody] CloseOrderRequest request)
        {
            CloseOrderResponse resp = _ordersServices.CloseOrder(request);

            return(Content(HttpStatusCode.OK, resp));
        }
Пример #10
0
 public Task <CloseOrderResponse> CloseOrderAsync(CloseOrderRequest request)
 {
     return(RequestAsync <CloseOrderResponse>("https://api.mch.weixin.qq.com/pay/closeorder", RequestProperties, request));
 }