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(); }
/// <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); }
/// <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); }
/// <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); }
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(); }
/// <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); }
/// <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); }
/// <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); }
/// <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 }); } }
/// <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); }
/// <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); }
/// <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); } }
/// <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); }
/// <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(); } }
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()); } }
/// <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); } }
/// <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); }
/// <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(); } }
/// <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()); } }
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())); } }
/// <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 }); } }
/// <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 }); }
/// <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); }
/// <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 }); } }
/// <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); }
/// <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); }
public Result <UpGradeExpress> GetExpress(AuthorizationParameters auth) { throw new NotImplementedException(); }
/// <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; }