Esempio n. 1
0
        static async Task Main(string[] args)
        {
            // var schema = JsonSchema.FromType<AuthorizationParameters>();
            //  var schemaData = schema.ToJson();
            foreach (Type p in AppDomain.CurrentDomain.GetAssemblies().SelectMany(g => g.GetTypesWithSchemaBindingAttribute()))
            {
                {
                    Console.WriteLine(p.ExtractMeta());
                }
            }



            var t = new AuthorizationParameters();

            var serializeObject = JsonConvert.SerializeObject(t);
            await File.WriteAllTextAsync("out.json", serializeObject);

            var text = File.ReadAllText("out.json");
            var obj  = JsonConvert.DeserializeObject <OfferParameters>(text);

            Console.WriteLine(text);
            Console.WriteLine(obj.MassOffersCacheInvalidationInterval);
            Console.ReadKey();
        }
Esempio n. 2
0
        /// <summary>
        /// 用户调用该接口可实现自己联系发货(线下物流)
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>处理结果</returns>
        /// <remarks>2016-6-11 杨浩 创建</remarks>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            var result = new Result()
            {
                Status = true
            };
            var _param = new Dictionary <string, string>();

            _param.Add("tid", param.MallOrderId);       //交易编号 (否)
            //_param.Add("outer_tid", "X231958349");//外部交易编号也可以根据外部交易编号发货,tid、outer_tid 必须选其一  (否)
            _param.Add("out_stype", param.CompanyCode); // 快递公司类型(否)
            _param.Add("out_sid", param.HytExpressNo);  // 快递单号(具体一个物流公司的真实快递单号)(否)
            //_param.Add("oids", "1");// 如果需要拆单发货,使用该字段指定要发货的交易明细的编号,多个明细编号用半角逗号分隔,不需要拆单发货,则改字段不传或值为空(否)
            _param.Add("is_no_express", "0");           // 发货是否无需物流如果为 0 则必须传递物流参数,如果为 1 则无需传递物流参数out_stype和out_sid,默认为 0(否)
            //var response = kit.post("kdt.logistics.online.confirm", _param, null, "");
            //var _response = JObject.Parse(response);

            //if (_response.Property("error_response") != null)
            //{
            //    result.Status = false;
            //    result.Message = _response["error_response"]["msg"].ToString();
            //    result.StatusCode = int.Parse(_response["error_response"]["code"].ToString());
            //}
            return(result);
        }
Esempio n. 3
0
        /// <summary>
        /// 获取一号店订单可合并升舱订单列表
        /// </summary>
        /// <param name="param">查询参数</param>
        /// <param name="auth">授权参数</param>
        /// <returns>可合并升舱订单列表</returns>
        /// <remarks>2017-08-23 黄杰 创建</remarks>
        public Result <List <UpGradeOrder> > GetCombineOrders(OrderParameters param, AuthorizationParameters auth)
        {
            ////查询订单详细信息
            //var result = GetOrderDetail(param, auth).Data;

            ////今日所有待发货订单
            //param.StartDate = DateTime.Now.AddDays(-1);
            //param.EndDate = DateTime.Now;
            //var list = GetOrderList(param, auth).Data;

            ////订单详情、待发货订单列表不可为空
            //if (list == null || result == null)
            //    return new Result<List<UpGradeOrder>>() { Status = false, StatusCode = -1, Message = "授权失败,请重新授权后重试", Data = null };
            //list = list.Where(o => o.MallOrderBuyer.MallOrderId != result.MallOrderBuyer.MallOrderId).ToList();
            ////筛选今日可合并升舱订单
            //list = (from order in list
            //        where order.MallOrderBuyer.BuyerNick == result.MallOrderBuyer.BuyerNick
            //        && order.MallOrderReceive.ReceiveContact == result.MallOrderReceive.ReceiveContact
            //        && (order.MallOrderReceive.Mobile == result.MallOrderReceive.Mobile || order.MallOrderReceive.TelPhone == result.MallOrderReceive.TelPhone)
            //        && order.MallOrderReceive.Province == result.MallOrderReceive.Province
            //        && order.MallOrderReceive.City == result.MallOrderReceive.City
            //        && order.MallOrderReceive.District == result.MallOrderReceive.District
            //        orderby order.MallOrderBuyer.MallOrderId ascending
            //        select order).ToList();

            //return new Result<List<UpGradeOrder>>()
            //{
            //    Status = true,
            //    StatusCode = 1,
            //    Data = list
            //};
            return(null);
        }
Esempio n. 4
0
        /// <summary>
        /// 批量获取指定时间区间的订单
        /// (待升舱的订单)
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>订单列表</returns>
        /// <remarks>2016-6-11 杨浩 创建</remarks>
        public Result <List <UpGradeOrder> > GetOrderList(OrderParameters param, AuthorizationParameters auth)
        {
            var dealerInfo = new HytOrderDealerInfo()
            {
                DealerSysNo     = 0,
                DealerMallSysNo = 5,
                HytPayStatus    = 20,
                IsSelfSupport   = 1,
            };
            var result = new Result <List <UpGradeOrder> > {
                Status = true, Message = "", Data = null, StatusCode = 0
            };
            var orderList = new List <UpGradeOrder>();
            var _param    = new Dictionary <string, string>();

            //_param.Add("fields", "tid,title,receiver_city,outer_tid,orders");
            _param.Add("status", "WAIT_SELLER_SEND_GOODS");//等待卖家发货,即:买家已付款

            _param.Add("use_has_next", "true");
            _param.Add("page_size", "40");
            _param.Add("page_no", "1");

            _param.Add("start_update", param.StartDate.ToString("yyyy-MM-dd HH:mm:ss"));
            _param.Add("end_update", param.EndDate.ToString("yyyy-MM-dd HH:mm:ss"));
            //_param.Add("start_created", param.StartDate.ToString("yyyy-MM-dd HH:mm:ss"));
            //_param.Add("end_created", param.EndDate.ToString("yyyy-MM-dd HH:mm:ss"));

            var response = kit.get("kdt.trades.sold.get", _param);

            while (true)
            {
                var  trade    = JObject.Parse(response);
                var  trades   = trade["response"]["trades"];
                bool has_next = bool.Parse(trade["response"]["has_next"].ToString());

                trade = JObject.Parse(response);
                foreach (var i in trades)
                {
                    var order = new UpGradeOrder();

                    Map(i, order);
                    order.HytOrderDealer            = dealerInfo;
                    order.HytOrderDealer.HytPayType = YouZanPayToPayTypeSysNo(i["pay_type"].ToString());
                    orderList.Add(order);
                }

                if (has_next)
                {
                    _param["page_no"] = (int.Parse(_param["page_no"].ToString()) + 1).ToString();
                    response          = kit.get("kdt.trades.sold.get", _param);
                }
                else
                {
                    break;
                }
            }

            result.Data = orderList;
            return(result);
        }
Esempio n. 5
0
        public string  Test()
        {
            HaiDaiUpGrade        haidai = new HaiDaiUpGrade();
            HaiDaiOrderParameter pa     = new HaiDaiOrderParameter();

            OrderParameters p = new OrderParameters();

            p.StartDate = DateTime.Now.AddDays(-5);
            p.EndDate   = DateTime.Now;

            AuthorizationParameters au = new AuthorizationParameters();

            au.MallType = 13;
            List <int> orders = new List <int>();

            orders.Add(538924);
            orders.Add(538918);
            //发货测试
            //haidai.ShipGoods("20170", "", "12345678", "shentong");

            //订单列表
            return(haidai.GetOrderList(p, au).ToString());
            //接单
            //return haidai.GetMallOrderDetail(orders,"").ToString();

            //发货
            //return haidai.ShipGoods("538918", "", "2001758225", "shentong").ToString();

            //订单详情
            //return haidai.OrderDetail("539020", "").ToString();
        }
Esempio n. 6
0
        /// <summary>
        /// 一号店 自己联系物流(线下物流)发货
        /// </summary>
        /// <param name="param">发货参数</param>
        /// <param name="auth">授权参数</param>
        /// <returns>发货结果</returns>
        /// <remarks>2017-08-24 黄杰 创建</remarks>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            var result = new Result()
            {
                Status = true
            };
            var _param = new Dictionary <string, string>();

            //订单发货
            var req = new LogisticsOfflineSendRequest()
            {
                //订单编号
                Tid = param.MallOrderId.LongCount(),
                //配送商ID
                CompanyCode = param.CompanyCode,
                //运单号
                OutSid = param.HytExpressNo
            };

            var response = client.Execute(req, config.SessionKey);

            var _response = JObject.Parse(response.ToString());

            if (_response.Remove("logistics_offline_send_response shipping is_success") == false)
            {
                result.Status     = false;
                result.Message    = _response["logistics_offline_send_response"]["sub_msg"].ToString();
                result.StatusCode = int.Parse(_response["logistics_offline_send_response"]["error_code"].ToString());
                result.errCode    = _response["logistics_offline_send_response"]["sub_code"].ToString();
            }
            return(result);
        }
Esempio n. 7
0
        /// <summary>
        /// 获取单笔订单详情
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>单笔订单详情</returns>
        /// <reamrks>2017-08-18 罗勤瑶 创建</reamrks>
        public Result <UpGradeOrder> GetOrderDetail(OrderParameters param, AuthorizationParameters auth)
        {
            //};
            var dealerInfo = new HytOrderDealerInfo()
            {
                DealerSysNo     = auth.DealerMall.DealerSysNo,   //
                DealerMallSysNo = auth.DealerMall.SysNo,         //
                HytPayStatus    = 20,
                IsSelfSupport   = auth.DealerMall.IsSelfSupport, //
            };
            var result = new Result <UpGradeOrder> {
                Status = true, Message = "", Data = null, StatusCode = 0
            };
            var order  = new UpGradeOrder();
            var _param = new Dictionary <string, string>();

            param.PageSize  = 999;
            param.PageIndex = 1;


            //请求的参数类调用
            GeGeJiaParameter ggjParameter = new GeGeJiaParameter();

            ///格格家没有单个订单的接口
            ///
            //string parm = "{\"params\":{\"startTime\":\"" + param.StartDate.ToString("yyyy-MM-dd HH:mm:ss") + "\",\"endTime\":\"" + param.EndDate.ToString("yyyy-MM-dd HH:mm:ss") + "\",\"page\":" + param.PageIndex + ", \"pageSize\":" + param.PageSize
            //+ ", \"status\":2},\"partner\":\"" + auth.DealerApp.AppSecret + "\",\"timestamp\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\"}";


            return(null);
        }
Esempio n. 8
0
        /// <summary>
        ///获取第三方支持的快递
        /// </summary>
        /// <param name="auth">授权参数</param>
        /// <returns>2018-03-25 罗勤尧</returns>
        public Result <UpGradeExpress> GetExpress(AuthorizationParameters auth)
        {
            var result = new Result <UpGradeExpress>()
            {
                Status = true
            };
            var _param = new Dictionary <string, string>();

            //海外购订单发货
            GeGeJiaDeliverGoods req = new GeGeJiaDeliverGoods();

            //订单类型,0:渠道订单,1:格格家订单,2:格格团订单,3:格格团全球购订单,4:环球捕手订单,5:燕网订单,6:b2b订单,7:手q,8:云店
            string parm = "{\"params\":{},\"partner\":\"" + auth.DealerApp.AppSecret + "\",\"timestamp\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\"}";

            //MD5加密签名
            string sign = MD5Encrypt(auth.DealerApp.AppKey + parm + auth.DealerApp.AppKey).ToUpper();

            var response  = PostJson("http://openapi.gegejia.com:8902/api/express/names", parm, sign);
            var Assreturn = JsonSerializationHelper.JsonToObject <UpGradeExpress>(response);
            var _response = JObject.Parse(response.ToString());

            //var names = _response.Property("names");
            if (_response.Property("errMsg") != null)
            {
                result.Status  = false;
                result.Message = _response.Property("errMsg").ToString();
                result.errCode = _response.Property("errCode").ToString();
            }
            else
            {
                result.Data    = Assreturn;
                result.Message = "获取成功";
            }
            return(result);
        }
Esempio n. 9
0
        /// <summary>
        /// 发货
        /// </summary>
        /// <param name="param">查询参数</param>
        /// <param name="auth">授权参数</param>
        /// <returns></returns>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            IDictionary <string, string> dic = new Dictionary <string, string>();

            dic.Add("format", "json");
            dic.Add("pureData", "1");
            dic.Add("sellerUin", auth.ShopAccount);
            dic.Add("dealCode", param.MallOrderId);
            dic.Add("logisticsName", param.CompanyCode);
            dic.Add("logisticsCode", param.HytExpressNo);
            dic.Add("arriveDays", "1");

            var client   = new OpenApiOauth(config.AppOAuthID, config.SecretOAuthKey, long.Parse(auth.ShopAccount), auth.AuthorizationCode);
            var response = client.InvokeOpenApi("http://api.paipai.com/deal/sellerConsignDealItem.xhtml", dic, null);
            var result   = Hyt.Util.Serialization.JsonUtil.ToObject <LogisticsResult>(response);

            if (result.errorCode == "0")
            {
                return(new Result()
                {
                    Status = true,
                    StatusCode = 1
                });
            }
            else
            {
                return(new Result()
                {
                    Status = false,
                    StatusCode = -1,
                    Message = result.errorMessage
                });
            }
        }
Esempio n. 10
0
        /// <summary>
        /// 用户调用该接口可实现自己联系发货(线下物流)
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>处理结果</returns>
        /// <reamrks>2017-09-06 黄杰 创建</reamrks>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            var result = new Result()
            {
                Status = true
            };
            var _param = new Dictionary <string, string>();

            //签名参数
            var signParameter = config.AppSecret + "$methodgome.order.order.send$token" + config.AccessToken + "$v1.0.0carriersId" + param.CompanyCode + "logisticsNumber" + param.HytExpressNo + "orderId" + param.MallOrderId + config.AppSecret;

            //SHA1加密,获得签名
            var sign = SHA1(signParameter, Encoding.UTF8).ToUpper();

            string req = "$token=" + config.AccessToken + "&$method=gome.order.order.send&$v=1.0.0&$sign=" + sign + "&orderId=" + param.MallOrderId + "&carriersId=" + param.CompanyCode + "&logisticsNumber=" + param.HytExpressNo + "";

            var response = Hyt.Util.WebUtil.Get(config.ApiUrl + "?" + req);

            var _response = JObject.Parse(response.ToString());

            if (_response.Property("error_response") != null)
            {
                result.Status  = false;
                result.Message = _response["error_response"]["msg"].ToString();
                result.errCode = _response["error_response"]["code"].ToString();
            }

            return(result);
        }
Esempio n. 11
0
        /// <summary>
        /// 更新订单备注信息
        /// </summary>
        /// <param name="remarks">备注内容</param>
        /// <param name="auth">授权参数</param>
        /// <returns>2014-03-25</returns>
        public Result UpdateTradeRemarks(IRemarksParameters remarks, AuthorizationParameters auth)
        {
            var result = new Result();

            var taobaoRemarks = (TaobaoRemarksParameters)remarks;

            if (auth.MallType == (int)DistributionStatus.商城类型预定义.淘宝分销)
            {
                var fenxiaoReq = new FenxiaoOrderRemarkUpdateRequest()
                {
                    PurchaseOrderId  = long.Parse(taobaoRemarks.MallOrderId),
                    SupplierMemoFlag = (int)taobaoRemarks.Flag,
                    SupplierMemo     = string.Format("{0}.{1}SC.", taobaoRemarks.RemarksContent, DateTime.Now.ToString(), "SC.")
                };

                var response = client.Execute(fenxiaoReq, auth.AuthorizationCode);

                if (!response.IsError)
                {
                    result.Message    = "修改备注成功!";
                    result.Status     = true;
                    result.StatusCode = 1;
                }
                else
                {
                    result.Message    = "修改备注失败,请重试!";
                    result.Status     = false;
                    result.StatusCode = 0;
                }
            }
            else if (auth.MallType == (int)DistributionStatus.商城类型预定义.天猫商城)
            {
                var req = new TradeMemoUpdateRequest
                {
                    Flag  = (int)taobaoRemarks.Flag,
                    Memo  = string.Format("{0}.{1}SC.", taobaoRemarks.RemarksContent, DateTime.Now.ToString(), "SC."),
                    Reset = taobaoRemarks.Reset,
                    Tid   = long.Parse(taobaoRemarks.MallOrderId)
                };

                var response = client.Execute(req, auth.AuthorizationCode);

                if (!response.IsError)
                {
                    result.Message    = "修改备注成功!";
                    result.Status     = true;
                    result.StatusCode = 1;
                }
                else
                {
                    result.Message    = "修改备注失败,请重试!";
                    result.Status     = false;
                    result.StatusCode = 0;
                }
            }
            return(result);
        }
Esempio n. 12
0
        /// <summary>
        /// The Mac's AuthorizationExecuteWithPrivileges runs a process as root but
        /// does not change the user id to be 0. This means that dotnet dev-certs cannot
        /// be directly used since it seems to require the user id to be 0 otherwise
        /// it will try to use sudo to trust the certificates. As a workaround another
        /// console application is run which calls setuid to change the user id to 0
        /// and then runs the dotnet dev-certs.
        /// </summary>
        static int Run(string dotNetCorePath, string monoPath, string prompt)
        {
            var fileName = typeof(MainClass).Assembly.Location;
            var args     = new [] { fileName, "--setuid", dotNetCorePath };

            var parameters = new AuthorizationParameters {
                Prompt = prompt,
                PathToSystemPrivilegeTool = ""                 // Cannot be null otherwise the prompt is not displayed.
            };

            var flags = AuthorizationFlags.ExtendRights |
                        AuthorizationFlags.InteractionAllowed |
                        AuthorizationFlags.PreAuthorize;

            using (var auth = Authorization.Create(parameters, null, flags)) {
                int result = auth.ExecuteWithPrivileges(
                    monoPath,
                    AuthorizationFlags.Defaults,
                    args);

                if (result != 0)
                {
                    if (Enum.TryParse(result.ToString(), out AuthorizationStatus authStatus))
                    {
                        if (authStatus == AuthorizationStatus.Canceled)
                        {
                            Console.WriteLine("Authorization canceled.");
                            return(5);
                        }
                        else
                        {
                            throw new InvalidOperationException($"Could not get authorization. {authStatus}");
                        }
                    }
                    throw new InvalidOperationException($"Could not get authorization. {result}");
                }

                int status;
                if (Syscall.wait(out status) == -1)
                {
                    throw new InvalidOperationException("Failed to start child process.");
                }

                if (!Syscall.WIFEXITED(status))
                {
                    throw new InvalidOperationException("Child process terminated abnormally.");
                }

                int exitCode = Syscall.WEXITSTATUS(status);
                if (exitCode != 0)
                {
                    Console.WriteLine($"Exit code from dotnet dev-certs: {exitCode}");
                }
                return(exitCode);
            }
        }
Esempio n. 13
0
        /// <summary>
        /// 获取店铺等待发货的订单
        /// </summary>
        /// <param name="param">条件参数</param>
        /// <param name="auth">授权参数</param>
        /// <returns>订单列表</returns>
        /// <reamrks>2014-04-08 黄波 创建</reamrks>
        private List <UpGradeOrder> GetShopWaitSendOrder(OrderParameters param, AuthorizationParameters auth)
        {
            var result = new List <UpGradeOrder>();

            //增量查询今日订单请求
            var req = new TradesSoldIncrementGetRequest
            {
                Fields =
                    "seller_flag,seller_nick,buyer_nick,alipay_no,has_buyer_message,title,tid,status,payment,discount_fee,post_fee,adjust_fee,pay_time,receiver_name,receiver_state,receiver_city,receiver_district,receiver_address,receiver_zip,receiver_mobile,receiver_phone,orders.title,orders.price,orders.num,orders.iid,orders.num_iid,orders.sku_id,orders.payment,orders.discount_fee,orders.sku_properties_name,orders.outer_iid,orders.outer_sku_id,orders.oid,orders.refund_status",
                Status        = "WAIT_SELLER_SEND_GOODS",
                StartModified = param.StartDate,
                EndModified   = param.EndDate,
                PageSize      = 20L,
                UseHasNext    = true
            };

            var nextPage = true;
            var pageNo   = 1L;
            var response = new TradesSoldIncrementGetResponse();

            while (nextPage)
            {
                try
                {
                    req.PageNo = pageNo;
                    response   = client.Execute(req, auth.AuthorizationCode);
                    if (!response.IsError)
                    {
                        if (response.HasNext)
                        {
                            pageNo++;
                        }
                        else
                        {
                            nextPage = false;
                        }
                        foreach (Trade trade in response.Trades)
                        {
                            var order = new UpGradeOrder();
                            Map(trade, order);
                            order.MallOrderBuyer.SellerFlag = trade.SellerFlag.ToString();
                            result.Add(order);
                        }
                    }
                    else
                    {
                        nextPage = false;
                    }
                }
                catch { nextPage = false; }
            }

            return(result);
        }
Esempio n. 14
0
        /// <summary>
        /// 用户调用该接口可实现自己联系发货(线下物流)
        /// </summary>
        /// <param name="param">参数实体</param>
        ///<param name="auth">授权参数</param>
        /// <returns>处理结果</returns>
        /// <remarks>2103-8-27 陶辉 创建</remarks>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            var req = new LogisticsOfflineSendRequest
            {
                Tid         = long.Parse(param.MallOrderId),
                OutSid      = param.HytExpressNo,
                CompanyCode = param.CompanyCode
            };
            LogisticsOfflineSendResponse offlineSendResponse = client.Execute(req, auth.AuthorizationCode);

            if (!offlineSendResponse.IsError)
            {
                if (offlineSendResponse.Shipping.IsSuccess)
                {
                    return(new Result()
                    {
                        Status = true,
                        StatusCode = 1
                    });
                }
                else
                {
                    return(new Result()
                    {
                        Status = false,
                        StatusCode = -1,
                        Message = "发货异常,请重新操作"
                    });
                }
            }
            else
            {
                return(new Result()
                {
                    Status = false,
                    StatusCode = -1,
                    Message = GetErrorMsg(offlineSendResponse.ErrCode, string.Format("OrderID:{6},ExpressNO:{7},CompanyCode:{8},Body:{0},ErrCode:{1},ErrMsg:{2},ReqUrl:{3},SubErrCode:{4},SubErrMsg:{5}",
                                                                                     offlineSendResponse.Body,
                                                                                     offlineSendResponse.ErrCode,
                                                                                     offlineSendResponse.ErrMsg,
                                                                                     "",
                                                                                     offlineSendResponse.SubErrCode,
                                                                                     offlineSendResponse.SubErrMsg,
                                                                                     param.MallOrderId,
                                                                                     param.HytExpressNo,
                                                                                     param.CompanyCode
                                                                                     )
                                          ),
                });
            }
        }
        public string CompleteOAuthFlow(AuthorizationParameters parameters)
        {
            try
            {
                DriveRestClient restClient = new DriveRestClient(AppConstants.GoogleDriveClientId, AppConstants.GoogleDriveClientSecret, googledriveRedirectUrl.ToString());

                DriveToken token = restClient.GetTokenfromCode(parameters.Code);

                Storage.GoogleDrive.Token = token;
                return "OAuth succeeded";
            }
            catch (Exception ex)// ActiveDirectoryAuthenticationException ex)
            {
                return "OAuth failed. " + ex.ToString();
            }
        }
Esempio n. 16
0
        public string CompleteOAuthFlow(AuthorizationParameters parameters)//AuthorizationParameters parameters)
        {
            try
            {
                DriveRestClient restClient = new DriveRestClient(AppConstants.GoogleDriveClientId, AppConstants.GoogleDriveClientSecret, googledriveRedirectUrl.ToString());

                DriveToken token = restClient.GetTokenfromCode(parameters.Code);

                Storage.GoogleDrive.Token = token;
                return("OAuth succeeded");
            }
            catch (Exception ex)// ActiveDirectoryAuthenticationException ex)
            {
                return("OAuth failed. " + ex.ToString());
            }
        }
Esempio n. 17
0
        /// <summary>
        /// 获取店铺等待发货的订单
        /// </summary>
        /// <param name="param">条件参数</param>
        /// <param name="auth">授权参数</param>
        /// <returns>订单列表</returns>
        /// <reamrks>2014-04-08 黄波 创建</reamrks>
        private List <UpGradeOrder> GetAgentWaitSendOrder(OrderParameters param, AuthorizationParameters auth)
        {
            //分销采购单请求
            var req = new FenxiaoOrdersGetRequest
            {
                Status       = "WAIT_SELLER_SEND_GOODS",
                StartCreated = param.StartDate,
                EndCreated   = param.EndDate,
                PageSize     = 20L
            };
            //交易状态为待发货

            FenxiaoOrdersGetResponse response = client.Execute(req, auth.AuthorizationCode);

            //是否异常
            if (!response.IsError)
            {
                var list = new List <UpGradeOrder>();
                //总页数
                long pageCount = ((response.TotalResults + req.PageSize - 1) / req.PageSize).Value;
                while (pageCount > 0)
                {
                    //为避免漏单,先查最后一页
                    req.PageNo = pageCount;
                    if (response.PurchaseOrders != null)
                    {
                        //过滤查询条件
                        var purchaseOrders = FilterMallOrder(response.PurchaseOrders, param);
                        //筛选分销类型为代销的采购单
                        foreach (PurchaseOrder curchaseOrder in purchaseOrders.FindAll(o => o.TradeType == "AGENT"))
                        {
                            var order = new UpGradeOrder();
                            Map(curchaseOrder, order);
                            order.MallOrderBuyer.SellerFlag = curchaseOrder.SupplierFlag.ToString();
                            list.Add(order);
                        }
                        pageCount--;
                    }
                }

                return(list);
            }
            else
            {
                return(null);
            }
        }
Esempio n. 18
0
        /// <summary>
        /// 订单详情
        /// </summary>
        /// <param name="orderIds">订单编号</param>
        /// <param name="authorizationcode">授权码</param>
        /// <returns>单笔订单详情</returns>
        /// <remarks>2017-6-15 罗勤尧 创建</remarks>
        public Result <DataDetail> OrderDetail(string orderIds, AuthorizationParameters auth)
        {
            var client = GetClient(auth.DealerApp.AppSecret, auth.DealerApp.AppKey, auth.DealerApp.Extend.Trim());

            var dicOrder = SetParameters(auth.AuthorizationCode);

            dicOrder.Add("orderId", orderIds.ToString());

            //返回字段
            //订单号
            //测试服务器接口
            string url = config.ApiUrlTest + "/api/depot/order!getOrderDetail.do";

            var response = client.OrderDetail(url, dicOrder);

            return(response);
        }
Esempio n. 19
0
        /// <summary>
        /// 用户调用该接口可实现自己联系发货(线下物流)
        /// </summary>
        /// <param name="param"></param>
        /// <param name="auth"></param>
        /// <returns></returns>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            Result result     = new Result();
            var    urlstr     = url + "/Order/addShipGoods";
            var    parameters = new NameValueCollection {
                { "orderCode", param.MallOrderId },
                { "expressNo", param.HytExpressNo },
                { "key", key }
            };
            var rtn  = HttpHelper.PostData(urlstr, parameters);
            var json = JObject.Parse(rtn);

            result.Status     = Convert.ToBoolean(json["Status"].ToString());
            result.Message    = Convert.ToString(json["Message"].ToString());
            result.StatusCode = Convert.ToInt32(json["StatusCode"].ToString());
            return(result);
        }
        public string CompleteOAuthFlow(AuthorizationParameters parameters) {
            try
            {
                ClientCredential credential = new ClientCredential(AppConstants.OneDriveClientId, AppConstants.OneDriveClientSecret);
                string authority = string.Format(CultureInfo.InvariantCulture, OAuthUrl, "common");
                AuthenticationContext authContext = new AuthenticationContext(authority);
                AuthenticationResult result = authContext.AcquireTokenByAuthorizationCode(
                    parameters.Code, new Uri(RedirectUrl.GetLeftPart(UriPartial.Path)), credential);

                // Cache the access token and refresh token
                Storage.OneDrive.RefreshToken = result.RefreshToken;
                return "OAuth succeeded";
            }
            catch (Exception ex)// ActiveDirectoryAuthenticationException ex)
            {
                return "OAuth failed. " + ex.ToString();
            }
        }
Esempio n. 21
0
        /// <summary>
        /// 批量获取指定时间区间的订单
        /// (待升舱的订单)
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>订单列表</returns>
        /// <reamrks>2017-08-16 黄杰 创建</reamrks>
        public Result <List <UpGradeOrder> > GetOrderList(OrderParameters param, AuthorizationParameters auth)
        {
            var dealerInfo = new HytOrderDealerInfo()
            {
                DealerSysNo     = 2323,
                DealerMallSysNo = 17,
                HytPayStatus    = 20,
                IsSelfSupport   = 1,
            };

            var result = new Result <List <UpGradeOrder> > {
                Status = true, Message = "", Data = null, StatusCode = 0
            };



            return(result);
        }
        static int Run(string[] args)
        {
            var flags = AuthorizationFlags.ExtendRights |
                        AuthorizationFlags.InteractionAllowed |
                        AuthorizationFlags.PreAuthorize;

            var directory = Path.GetFullPath(Path.GetDirectoryName(typeof(MainClass).Assembly.Location));

            var parameters = new AuthorizationParameters();

            parameters.Prompt = "Test";
            parameters.PathToSystemPrivilegeTool = "";

            using (var auth = Authorization.Create(parameters, null, flags)) {
                string command  = "/Library/Frameworks/Mono.framework/Versions/Current/Commands/mono";
                string fileName = Path.Combine(directory, "RunAsRootConsoleApp.exe");

                var arguments = new [] { fileName };
                int result    = auth.ExecuteWithPrivileges(command, AuthorizationFlags.Defaults, arguments);
                if (result != 0)
                {
                    if (Enum.TryParse(result.ToString(), out AuthorizationStatus authStatus))
                    {
                        throw new InvalidOperationException($"Could not get authorization. {authStatus}");
                    }
                    throw new InvalidOperationException($"Could not get authorization. {result}");
                }

                int status;
                if (Syscall.wait(out status) == -1)
                {
                    throw new InvalidOperationException("Failed to start child process.");
                }

                if (!Syscall.WIFEXITED(status))
                {
                    throw new InvalidOperationException("Child process terminated abnormally.");
                }

                int exitCode = Syscall.WEXITSTATUS(status);
                return(exitCode);
            }
        }
        public string CompleteOAuthFlow(AuthorizationParameters parameters)
        {
            try
            {
                ClientCredential      credential  = new ClientCredential(ClientId, ClientSecret);
                string                authority   = string.Format(CultureInfo.InvariantCulture, OAuthUrl, "common");
                AuthenticationContext authContext = new AuthenticationContext(authority);
                AuthenticationResult  result      = authContext.AcquireTokenByAuthorizationCode(
                    parameters.Code, new Uri(RedirectUrl.GetLeftPart(UriPartial.Path)), credential);

                // Cache the access token and refresh token
                Storage.SecureStore.RefreshToken = result.RefreshToken;
                return("OAuth succeeded");
            }
            catch (ActiveDirectoryAuthenticationException ex)
            {
                return("OAuth failed. " + ex.ToString());
            }
        }
Esempio n. 24
0
        public string CompleteOAuthFlow(AuthorizationParameters parameters)
        {
            // Look up the email from the guid/user map.
            string userEmail = Storage.AppConfigCache.GetUserFromStateGuid(parameters.State);

            if (string.IsNullOrEmpty(userEmail))
            {
                // Per the Azure docs, the response from the auth code request has
                // to include the value of the state parameter passed in the request.
                // If it is not the same, then you should not accept the response.
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.OK,
                                                                            "Unknown state returned in OAuth flow."));
            }

            try
            {
                // Get authorized for the discovery service
                ClientCredential      credential  = new ClientCredential(ClientId, ClientSecret);
                string                authority   = string.Format(CultureInfo.InvariantCulture, OAuthUrl, "common");
                AuthenticationContext authContext = new AuthenticationContext(authority);
                AuthenticationResult  result      = authContext.AcquireTokenByAuthorizationCode(
                    parameters.Code, new Uri(RedirectUrl.GetLeftPart(UriPartial.Path)), credential, DiscoveryResource);

                // Cache the refresh token
                Storage.AppConfig appConfig = new Storage.AppConfig();
                appConfig.RefreshToken = result.RefreshToken;

                // Use the access token to get the user's OneDrive URL
                OneDriveServiceInfo serviceInfo = DiscoverServiceInfo(result.AccessToken);
                appConfig.OneDriveResourceId  = serviceInfo.ResourceId;
                appConfig.OneDriveApiEndpoint = serviceInfo.Endpoint;

                // Save the user's configuration in our confic cache
                Storage.AppConfigCache.AddUserConfig(userEmail, appConfig);
                return("OAuth succeeded. Please close this window to continue.");
            }
            catch (ActiveDirectoryAuthenticationException ex)
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.OK,
                                                                            "OAuth failed. " + ex.ToString()));
            }
        }
Esempio n. 25
0
 /// <summary>
 /// 获取单笔订单详情
 /// </summary>
 /// <param name="param">参数实体</param>
 /// <param name="auth">权限参数</param>
 /// <returns>单笔订单详情</returns>
 /// <remarks>2103-8-27 陶辉 创建</remarks>
 public Result <UpGradeOrder> GetOrderDetail(OrderParameters param, AuthorizationParameters auth)
 {
     if (auth.MallType == (int)DistributionStatus.商城类型预定义.天猫商城)
     {
         return(GetMallOrderDetail(param.OrderID, auth.AuthorizationCode));
     }
     else if (auth.MallType == (int)DistributionStatus.商城类型预定义.淘宝分销)
     {
         return(GetAgentOrderDetail(param.OrderID, auth.AuthorizationCode));
     }
     else
     {
         return(new Result <UpGradeOrder>()
         {
             Status = false,
             StatusCode = -1,
             Message = "获取异常,请联系客服",
             Data = null
         });
     }
 }
Esempio n. 26
0
        /// <summary>
        /// 获取可合并升舱订单列表
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>可合并升舱订单列表</returns>
        /// <remarks>2016-6-11 杨浩 创建</remarks>
        public Result <List <UpGradeOrder> > GetCombineOrders(OrderParameters param, AuthorizationParameters auth)
        {
            //查询订单详细信息
            var result = GetOrderDetail(param, auth).Data;

            //今日所有待发货订单
            param.StartDate = DateTime.Now.AddDays(-1);
            param.EndDate   = DateTime.Now;
            var list = GetOrderList(param, auth).Data;

            //订单详情、待发货订单列表不可为空
            if (list == null || result == null)
            {
                return new Result <List <UpGradeOrder> >()
                       {
                           Status = false, StatusCode = -1, Message = "授权失败,请重新授权后重试", Data = null
                       }
            }
            ;
            list = list.Where(o => o.MallOrderBuyer.MallOrderId != result.MallOrderBuyer.MallOrderId).ToList();
            //筛选今日可合并升舱订单
            list = (from order in list
                    where order.MallOrderBuyer.BuyerNick == result.MallOrderBuyer.BuyerNick &&
                    order.MallOrderReceive.ReceiveContact == result.MallOrderReceive.ReceiveContact &&
                    (order.MallOrderReceive.Mobile == result.MallOrderReceive.Mobile || order.MallOrderReceive.TelPhone == result.MallOrderReceive.TelPhone) &&
                    order.MallOrderReceive.Province == result.MallOrderReceive.Province &&
                    order.MallOrderReceive.City == result.MallOrderReceive.City &&
                    order.MallOrderReceive.District == result.MallOrderReceive.District &&
                    order.MallOrderReceive.ReceiveAddress == result.MallOrderReceive.ReceiveAddress &&
                    order.MallOrderReceive.IdCard == result.MallOrderReceive.IdCard
                    orderby order.MallOrderBuyer.MallOrderId ascending
                    select order).ToList();

            return(new Result <List <UpGradeOrder> >()
            {
                Status = true,
                StatusCode = 1,
                Data = list
            });
        }
Esempio n. 27
0
        /// <summary>
        /// 用户调用该接口可实现自己联系发货(线下物流)
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>处理结果</returns>
        /// <remarks>2016-6-11 杨浩 创建</remarks>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            var client = new HaiDaiApi(auth.DealerApp.AppSecret, auth.DealerApp.AppKey, auth.ShopAccount, auth.DealerApp.Extend.Trim());

            var result = new Result()
            {
                Status = false
            };


            var dicOrder = SetParameters(auth.AuthorizationCode);

            dicOrder.Add("shipNo", param.HytExpressNo);
            dicOrder.Add("shipType", param.CompanyCode);
            dicOrder.Add("sn", param.MallOrderId.ToString());
            //返回字段
            //订单号
            //测试服务器接口
            string url      = config.ApiUrlTest + "/api/depot/order!addShipGoods.do";
            var    response = client.ShipGoods(url, dicOrder);


            if (response.result == 1 || response.message.Contains("已发货"))
            {
                result.Status     = true;
                result.StatusCode = 1;
                result.Message    = response.message;
            }
            else
            {
                result.Status     = false;
                result.StatusCode = -1;
                result.Message    = response.message;
            }

            return(result);
        }
Esempio n. 28
0
        /// <summary>
        /// 获取拍拍订单详情
        /// </summary>
        /// <param name="param">查询参数</param>
        /// <param name="auth">授权参数</param>
        /// <returns>拍拍订单详情</returns>
        /// <remarks>2013-11-10 陶辉 创建</remarks>
        public Result <UpGradeOrder> GetOrderDetail(OrderParameters param, AuthorizationParameters auth)
        {
            IDictionary <string, string> dic = new Dictionary <string, string>();

            dic.Add("format", "json");
            dic.Add("pureData", "1");
            dic.Add("sellerUin", auth.ShopAccount);
            dic.Add("dealCode", param.OrderID);
            dic.Add("listItem", "1");

            var client   = new OpenApiOauth(config.AppOAuthID, config.SecretOAuthKey, long.Parse(auth.ShopAccount), auth.AuthorizationCode);
            var response = client.InvokeOpenApi("http://api.paipai.com/deal/getDealDetail.xhtml", dic, null);
            var result   = Hyt.Util.Serialization.JsonUtil.ToObject <DealInfo>(response);

            if (result.errorCode == "0")
            {
                var order = new UpGradeOrder();
                Map(result, order);

                return(new Result <UpGradeOrder>()
                {
                    Status = true,
                    StatusCode = 1,
                    Data = order
                });
            }
            else
            {
                return(new Result <UpGradeOrder>()
                {
                    Status = false,
                    StatusCode = -1,
                    Message = result.errorMessage,
                    Data = null
                });
            }
        }
Esempio n. 29
0
        /// <summary>
        /// 获取单笔订单详情
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>单笔订单详情</returns>
        /// <reamrks>2017-08-16 黄杰 创建</reamrks>
        public Result <UpGradeOrder> GetOrderDetail(OrderParameters param, AuthorizationParameters auth)
        {
            var result = new Result <UpGradeOrder> {
                Status = true, Message = "", Data = null, StatusCode = 0
            };
            var req = new PopOrderGetRequest();

            req.orderId = param.OrderID;
            //需返回的字段列表
            req.optionalFields = "orderId,venderId,orderType,payType,orderTotalPrice,orderSellerPrice,orderPayment,freightPrice,sellerDiscount,orderState,orderStateRemark,deliveryType,invoiceInfo,invoiceCode,orderRemark,orderStartTime,orderEndTime,consigneeInfo,itemInfoList,couponDetailList,venderRemark,balanceUsed,pin,returnOrder,paymentConfirmTime,waybill,logisticsId,vatInfo,modified,directParentOrderId,parentOrderId,customs,customsModel,orderSource,storeOrder,idSopShipmenttype,scDT,serviceFee,pauseBizInfo,taxFee,tuiHuoWuYou,storeId";

            var response = client.Execute(req, config.AccessToken, DateTime.Now.ToLocalTime());

            var order = new UpGradeOrder();
            var trade = JObject.Parse(response.orderDetailInfo);

            Map(trade["orderInfo"], order);
            order.HytOrderDealer = new HytOrderDealerInfo();
            // 支付方式(1货到付款, 2邮局汇款, 3自提, 4在线支付, 5公司转账, 6银行卡转账)
            order.HytOrderDealer.HytPayType = JingDongToPayTypeSysNo(trade["orderInfo"]["payType"].ToString());

            result.Data = order;
            return(result);
        }
Esempio n. 30
0
        /// <summary>
        /// 用户调用该接口可实现自己联系发货(线下物流)
        /// </summary>
        /// <param name="param">参数实体</param>
        /// <param name="auth">授权参数</param>
        /// <returns>处理结果</returns>
        /// <reamrks>2018-04-10 罗勤瑶 创建</reamrks>
        public Result SendDelivery(DeliveryParameters param, AuthorizationParameters auth)
        {
            var result = new Result()
            {
                Status = true
            };
            var _param = new Dictionary <string, string>();

            //海外购订单发货
            GeGeJiaDeliverGoods req = new GeGeJiaDeliverGoods();

            //订单ID
            req.orderNumber = param.MallOrderId;
            //物流公司名称
            req.expressName = param.CompanyCode;
            //运单号
            req.expressNo = param.HytExpressNo;

            //订单类型,0:渠道订单,1:格格家订单,2:格格团订单,3:格格团全球购订单,4:环球捕手订单,5:燕网订单,6:b2b订单,7:手q,8:云店
            string parm = "{\"params\":{\"type\":1,\"orderNumber\":\"" + req.orderNumber + "\",\"expressName\":\"" + req.expressName + "\",\"expressNo\":\"" + req.expressNo + "\"},\"partner\":\"" + auth.DealerApp.AppSecret + "\",\"timestamp\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\"}";

            //MD5加密签名
            string sign = MD5Encrypt(auth.DealerApp.AppKey + parm + auth.DealerApp.AppKey).ToUpper();

            var response = PostJson("http://openapi.gegejia.com:8902/api/order/sendOrder", parm, sign);

            var _response = JObject.Parse(response.ToString());

            if (_response.Property("errMsg") != null)
            {
                result.Status  = false;
                result.Message = _response.Property("errMsg").ToString();
                result.errCode = _response.Property("errCode").ToString();
            }
            return(result);
        }
Esempio n. 31
0
 public Result <UpGradeExpress> GetExpress(AuthorizationParameters auth)
 {
     throw new NotImplementedException();
 }
Esempio n. 32
0
 /// <summary>
 /// 更新订单备注信息
 /// </summary>
 /// <param name="remarks">备注内容</param>
 /// <param name="auth">授权参数</param>
 /// <returns>2016-6-11 杨浩 创建</returns>
 public Result UpdateTradeRemarks(IRemarksParameters remarks, AuthorizationParameters auth)
 {
     return(null);
 }
 protected override AuthorizationUrlBuilder GetAuthorizationUrlBuilder(AuthorizationParameters parameters)
 {
     var builder = new AuthorizationUrlBuilder("https://accounts.google.com/o/oauth2/auth");
     builder.DisplayParamName = "approval_prompt";
     return builder;
 }