public ApiMessage ChargeBack() { ApiMessage message = new ApiMessage(); try { this.IniRequest(); SortedDictionary <string, string> sArray = GetRequestParameters(); ChargeBridge bridge = new ChargeBridge(); ChargeResult result = bridge.ChargeCallBack(sArray); message.Message = result.Message; message.Status = "OK"; if (result.Status != ChargeStatus.SUCCEED) { message.Status = "ERROR"; } } catch (KMBitException kex) { message.Status = "ERROR"; message.Message = kex.Message; } catch (Exception ex) { message.Status = "ERROR"; message.Message = "未知错误"; } return(message); }
public ActionResult Charge(AgentChargeModel model) { if (ModelState.IsValid) { try { ChargeBridge cb = new ChargeBridge(); ChargeOrder order = new ChargeOrder() { Payed = false, OperateUserId = 0, AgencyId = User.Identity.GetUserId <int>(), Id = 0, Province = model.Province, City = model.City, MobileSP = model.SPName, MobileNumber = model.Mobile, OutOrderId = "", ResourceId = 0, ResourceTaocanId = model.ResourceTaocanId, RouteId = model.RouteId, CreatedTime = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now) }; OrderManagement orderMgt = new OrderManagement(); order = orderMgt.GenerateOrder(order); //ChargeResult result = cb.Charge(order); ViewBag.Message = "成功提交到充值系统,等待充值,可以到流量充值查询里查看充值状态..."; } catch (KMBitException ex) { ViewBag.Message = ex.Message; }finally { model = new AgentChargeModel(); } } return(View(model)); }
public APIChargeResult Charge(int agendId, int routeId, string mobile, string province, string city, string callBackUrl) { ChargeResult result = null; ChargeBridge cb = new ChargeBridge(); ChargeOrder order = new ChargeOrder() { Payed = false, OperateUserId = 0, AgencyId = agendId, Id = 0, Province = province, City = city, MobileNumber = mobile, OutId = "", ResourceId = 0, ResourceTaocanId = 0, RouteId = routeId, CreatedTime = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now), CallbackUrl = callBackUrl }; OrderManagement orderMgt = new OrderManagement(); try { order = orderMgt.GenerateOrder(order); result = cb.Charge(order); } catch (KMBitException kex) { result = new ChargeResult(); result.Status = ChargeStatus.FAILED; result.Message = kex.Message; }catch (Exception ex) { result = new ChargeResult(); result.Status = ChargeStatus.FAILED; result.Message = "未知错误,请联系平台管理员"; } APIChargeResult apiResult = new APIChargeResult(); apiResult.Message = result.Message; apiResult.OrderId = order.Id; switch (result.Status) { case ChargeStatus.SUCCEED: apiResult.Status = 2; break; case ChargeStatus.FAILED: apiResult.Status = 2; break; case ChargeStatus.ONPROGRESS: apiResult.Status = 1; break; case ChargeStatus.PENDIND: apiResult.Status = 10; break; } return(apiResult); }
public HttpResponseMessage BeibeiBack() { var resp = new HttpResponseMessage(HttpStatusCode.OK); string result = ""; try { this.IniRequest(); SortedDictionary <string, string> sArray = GetRequestParameters(); ChargeBridge bridge = new ChargeBridge(); result = bridge.ChargeCallBack(sArray, ResourceType.BeiBeiFlow); } catch { result = "fail"; } resp.Content = new StringContent(result, System.Text.Encoding.UTF8, "text/plain"); return(resp); }
static void GetStatus() { ChargeBridge bridge = new ChargeBridge(); bridge.SyncChargeStatus(); }
public APIChargeResult Charge(int agentId, int routeId, string mobile, string spname, string province, string city, string callBackUrl, string client_order_id) { if (string.IsNullOrEmpty(mobile)) { throw new KMBitException("手机号码不能为空"); } if (string.IsNullOrEmpty(spname)) { throw new KMBitException("手机号归属运行商不能为空"); } if (string.IsNullOrEmpty(province)) { throw new KMBitException("手机号归属省份不能为空"); } //if (string.IsNullOrEmpty(city)) //{ // throw new KMBitException("手机号归属城市不能为空"); //} ChargeResult result = null; ChargeBridge cb = new ChargeBridge(); ChargeOrder order = new ChargeOrder() { ClientOrderId = client_order_id, Payed = false, OperateUserId = 0, AgencyId = agentId, Id = 0, Province = province, City = city != null? city:"", MobileNumber = mobile, MobileSP = spname, OutOrderId = "", ResourceId = 0, ResourceTaocanId = 0, RouteId = routeId, CreatedTime = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now), CallbackUrl = callBackUrl }; chargebitEntities db = null; OrderManagement orderMgt = new OrderManagement(); try { db = new chargebitEntities(); Users agent = (from u in db.Users where u.Id == agentId select u).FirstOrDefault <Users>(); if (agent == null) { throw new KMBitException(string.Format("编号为{0}的代理商不存在", agentId)); } if (!agent.Enabled) { throw new KMBitException(string.Format("代理商{0}已经被关闭禁用", agent.Name)); } //verify mobile sp Agent_route route = (from r in db.Agent_route where r.Id == routeId && r.User_id == agentId select r).FirstOrDefault <Agent_route>(); if (route == null) { throw new KMBitException(string.Format("代理商 {1} 编号为{0}的路由不存在", routeId, agent.Name)); } if (!route.Enabled) { throw new KMBitException(string.Format("代理商 {1} 编号为{0}的路由已经被关闭", routeId, agent.Name)); } Resource_taocan taocan = (from t in db.Resource_taocan where t.Id == route.Resource_taocan_id select t).FirstOrDefault <Resource_taocan>(); int spId = (from sp in db.Sp where sp.Name.Contains(spname.Trim()) select sp.Id).FirstOrDefault <int>(); if (spId == 0) { throw new KMBitException("手机运营商的值必须是-中国移动,中国联通或者中国电信"); } int provinceId = (from area in db.Area where area.Name.Contains(province) select area.Id).FirstOrDefault <int>(); if (provinceId == 0) { throw new KMBitException("手机号码归属省份值不正确,例如 河南,海南,江苏,请以此种格式传入"); } if (taocan.NumberProvinceId > 0 && provinceId > 0) { if (provinceId != taocan.NumberProvinceId) { throw new KMBitException(string.Format("当前路由不能充{0}-{1}的手机号码", spname, province)); } } order = orderMgt.GenerateOrder(order); //result = cb.Charge(order); if (order.Id > 0) { result = new ChargeResult(); result.Status = ChargeStatus.SUCCEED; result.Message = "充值信息已提交到充值系统"; } } catch (KMBitException kex) { throw kex; } catch (Exception ex) { logger.Error(ex); result = new ChargeResult(); result.Status = ChargeStatus.FAILED; result.Message = "未知错误,请联系平台管理员"; } APIChargeResult apiResult = new APIChargeResult(); //apiResult.Message = result.Message; apiResult.OrderId = order.Id; switch (result.Status) { case ChargeStatus.SUCCEED: apiResult.Status = ChargeStatus.SUCCEED.ToString(); apiResult.Message = result.Message; break; case ChargeStatus.FAILED: apiResult.Status = ChargeStatus.FAILED.ToString(); break; case ChargeStatus.ONPROGRESS: apiResult.Status = ChargeStatus.SUCCEED.ToString(); break; case ChargeStatus.PENDIND: apiResult.Status = ChargeStatus.SUCCEED.ToString(); break; } return(apiResult); }