public ActionResult Payment(int id, FormCollection collection) { var Integral = YunShop.Core.DataProvider.GlobeInfo.GetIntegralRequest(); var prepaidCar = 0.0; var trade = YunClient.Instance.Execute(new GetTradeRequest {Id = id}).Trade; if (trade != null) { var rr = YunShop.Core.Extension.Member.GetCurrentUser(); var overMoney = collection["Money"].TryTo(0.0); if (!string.IsNullOrWhiteSpace(trade.Ext)) { var Userintegral = YunShop.Core.DataProvider.Integral.UserIntegral(); if (Userintegral < (trade.Ext.IndexOf(',') >= 0 ? int.Parse(trade.Ext.Split(',')[1]) : int.Parse(trade.Ext))) { return Json(new { error = "该订单需要" + (trade.Ext.IndexOf(',') >= 0 ? trade.Ext.Split(',')[1] : trade.Ext) + "积分,您积分不足" }); } if (Math.Round(YunShop.Core.Extension.Member.GetPrepaidCard(), 0) > (trade.Ext.IndexOf(',') >= 0 ? int.Parse(trade.Ext.Split(',')[1]) : int.Parse(trade.Ext))) { prepaidCar = (trade.Ext.IndexOf(',') >= 0 ? int.Parse(trade.Ext.Split(',')[1]) : int.Parse(trade.Ext)); } else { prepaidCar = Math.Round(YunShop.Core.Extension.Member.GetPrepaidCard(), 0); } } //余额付款流程 if (overMoney >= trade.Money) { if (!string.IsNullOrWhiteSpace(trade.Ext)) { YunShop.Core.Extension.Trade.ModifyPriceRequests(id, int.Parse(Math.Round(prepaidCar, 0).ToString())); } var ss = new GeneratePayTradeRequest { OverMoney = overMoney, Ip = Request.UserHostAddress, ClientType = "MOBILE", Id = id, PrepaidCard = prepaidCar, }; var flowId = YunClient.Instance.Execute(ss, Member.Token); if (!flowId.IsError && !string.IsNullOrEmpty(flowId.Result)) { var payResult = YunClient.Instance.Execute(new CompletePayRequest { Id = flowId.Result.TryTo(0) }, Member.Token); if (payResult.Result) { if (!string.IsNullOrWhiteSpace(trade.Ext)) { YunShop.Core.DataProvider.Integral.DeductionIntegral(id); } } else { if (!string.IsNullOrWhiteSpace(trade.Ext)) { YunShop.Core.Extension.Trade.ModifyPriceRequest(id, int.Parse(Math.Round(prepaidCar, 0).ToString())); } } return Json(new { error = payResult.ErrMsg, id = id }); } else { if (!string.IsNullOrWhiteSpace(trade.Ext)) { YunShop.Core.Extension.Trade.ModifyPriceRequest(id, int.Parse(Math.Round(prepaidCar, 0).ToString())); } } return Json(new {error = flowId.ErrMsg}); } var r = YunClient.Instance.Execute(new GeneratePayTradeRequest { ClientType = "MOBILE", Ip = Request.UserHostAddress, OnlineMoney = trade.Money - overMoney, Id = id, PaymentIns = collection["PayType"], OverMoney = overMoney, PrepaidCard = prepaidCar, }, Member.Token); return Json(new {error = r.ErrMsg, id = r.Result}); } return Json(new {error = "订单不存在"}); }
/// <summary> /// 生成支付订单 /// </summary> public static string GeneratePayRequest(int id, string onlinemoney, string overmoney, string ip, string clienttype, string paymentins, string bankcode, double cash, string payChannel) { var rr = new GeneratePayTradeRequest { Id = id, OnlineMoney = double.Parse(onlinemoney), OverMoney = double.Parse(overmoney), Ip = ip, ClientType = clienttype, PaymentIns = paymentins, BankCode = bankcode, Cash = cash, PayChannel = payChannel, }; var r = YunClient.Instance.Execute(rr, Member.Token); return r.Result; }