/// <summary> /// 支付充值 /// </summary> /// <param name="orderPay"></param> /// <returns></returns> public bool PayRecharge(OrderPay orderPay, string tradeNo) { string msg = ""; orderPay.Trade_No = tradeNo; return(bll.PayRechargeTransfers(orderPay, "", tradeNo, out msg)); }
public void ProcessRequest(HttpContext context) { string orderId = context.Request["order_id"]; string websiteOwner = bllOrder.WebsiteOwner; OrderPay orderPay = bllOrder.GetColByKey <OrderPay>("OrderId", orderId, "AutoID,Status", websiteOwner: websiteOwner); if (orderPay == null) { apiResp.msg = "订单未找到"; apiResp.code = (int)APIErrCode.OperateFail; } else if (orderPay.Status == 0) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "订单还未支付"; } else if (orderPay.Status == 1) { apiResp.status = true; apiResp.code = (int)APIErrCode.IsSuccess; apiResp.msg = "订单支付完成"; } else { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "订单状态未知"; } bllOrder.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { string orderId = context.Request["order_id"]; if (string.IsNullOrEmpty(orderId)) { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.IsNotFound; apiResp.msg = "order_id 为必填项,请检查"; bllPay.ContextResponse(context, apiResp); return; } OrderPay orderInfo = bllOrder.GetOrderPay(orderId); if (orderInfo == null) { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.IsNotFound; apiResp.msg = "订单号不存在"; bllPay.ContextResponse(context, apiResp); return; } if (orderInfo.UserId != CurrentUserInfo.UserID) { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.IsNotFound; apiResp.msg = "订单号无效"; bllPay.ContextResponse(context, apiResp); return; } if (orderInfo.Status == 1) { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.IsRepeat; apiResp.msg = "订单已经支付,不需重复支付"; bllPay.ContextResponse(context, apiResp); return; } RequestWeiXin weixin = new RequestWeiXin(); weixin.notifyUrl = "http://" + context.Request.Url.Host + "/WxPayNotify/NotifyWeixinPay.aspx";//支付通知地址 PayConfig payConfig = bllPay.GetPayConfig(); weixin.appId = payConfig.WXAppId; weixin.mch_Id = payConfig.WXMCH_ID; weixin.key = payConfig.WXPartnerKey; weixin.openId = CurrentUserInfo.WXOpenId; weixin.ip = context.Request.UserHostAddress; string payReqStr = bllPay.GetBrandWcPayRequest(orderInfo.OrderId, orderInfo.Total_Fee, weixin.appId, weixin.mch_Id, weixin.key, weixin.openId, weixin.ip, weixin.notifyUrl, weixin.body, "APP"); BllPay.WXPayReq payReqModel = ZentCloud.Common.JSONHelper.JsonToModel <BllPay.WXPayReq>(payReqStr); if (!string.IsNullOrEmpty(payReqModel.paySign)) { bllPay.ContextResponse(context, new { status = true, pay_req = payReqModel }); } apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; apiResp.msg = "出错"; bllPay.ContextResponse(context, apiResp); }
public static void ClearReferences(this OrderPay model) { model.tb_admin = null; model.tb_balance = null; model.tb_device = null; model.tb_member = null; model.tb_order = null; }
public string OffLinePay(string JSon, string from) { OrderPay bll = new OrderPay(); OrderPay.ResultOffLinePay result = bll.OffLinePay(AESHelper.Decrypt_android(JSon)); JavaScriptSerializer js = new JavaScriptSerializer(); return(AESHelper.Encrypt_android(js.Serialize(result))); }
public void BuildOrder(HttpContext context, int payType, UserInfo user) { decimal amount = Convert.ToDecimal(context.Request["amount"]); if (amount <= 0) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "金额必须大于0"; bll.ContextResponse(context, apiResp); return; } string websiteOwner = bll.WebsiteOwner; PayConfig payConfig = bllPay.GetPayConfig(); if (payType == 1 && !bllPay.IsAliPay(payConfig)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户支付宝支付还没有配置"; bll.ContextResponse(context, apiResp); return; } else if (payType == 2 && !bllPay.IsJDPay(payConfig)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户京东支付还没有配置"; bll.ContextResponse(context, apiResp); return; } OrderPay orderPay = new OrderPay(); orderPay.OrderId = bll.GetGUID(TransacType.PayRegisterOrder); orderPay.InsertDate = DateTime.Now; orderPay.Subject = "支付充值"; orderPay.Total_Fee = amount; orderPay.Type = "4"; orderPay.WebsiteOwner = websiteOwner; orderPay.UserId = user.UserID; orderPay.PayType = payType; if (!bll.Add(orderPay)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "生成支付订单失败"; bll.ContextResponse(context, apiResp); return; } apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; apiResp.result = new { pay_order_id = orderPay.OrderId }; bllUser.ContextResponse(context, apiResp); }
protected void Page_Load(object sender, EventArgs e) { string orderId = this.Request["OrderId"]; OrderPay orderPay = bllOrder.GetOrderPay(orderId); if (orderPay != null && orderPay.Status == 0) { PayConfig payConfig = bllPay.GetPayConfig(); PayString = bllPay.GetBrandWcPayRequest(orderId, orderPay.Total_Fee, payConfig.WXAppId, payConfig.WXMCH_ID, payConfig.WXPartnerKey, bllOrder.GetCurrentUserInfo().WXOpenId, this.Request.UserHostAddress, string.Format("http://{0}/Admin/DoPay/DoPayWxNotify.aspx", this.Request.Url.Host), "易劳积分充值" + orderPay.Total_Fee + "元"); } }
public void ProcessRequest(HttpContext context) { string cardId = context.Request["card_id"]; if (string.IsNullOrEmpty(cardId)) { apiResp.msg = "card_id 必传"; bll.ContextResponse(context, apiResp); return; } if (bll.GetCount <OrderPay>(string.Format(" UserId='{0}' And Status=1 And Type=8 And RelationId='{1}'", CurrentUserInfo.UserID, cardId)) > 0) { apiResp.msg = "重复申请"; bll.ContextResponse(context, apiResp); return; } MeifanCard card = bll.GetCard(cardId); if (card == null) { apiResp.msg = "card_id 错误"; bll.ContextResponse(context, apiResp); return; } OrderPay order = new OrderPay(); order.WebsiteOwner = bll.WebsiteOwner; order.InsertDate = DateTime.Now; order.UserId = CurrentUserInfo.UserID; order.Type = "8"; order.OrderId = bll.GetGUID(BLLJIMP.TransacType.CommAdd); order.Total_Fee = card.Amount + card.ServerAmount; order.Subject = card.CardName; order.PayType = 0; order.Status = 0; order.RelationId = card.CardId; order.Ex1 = "0"; if (bll.Add(order)) { apiResp.status = true; apiResp.msg = "ok"; apiResp.result = new { order_id = order.OrderId }; } else { apiResp.msg = "生成订单失败"; } bll.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { string orderId = context.Request["id"]; BllOrder bllOrder = new BllOrder(); OrderPay orderPay = bllOrder.GetOrderPay(orderId, "1", bllOrder.WebsiteOwner); if (orderPay != null && orderPay.Status == 1) { apiResp.status = true; } bllOrder.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { string orderId = context.Request["order_id"]; if (string.IsNullOrEmpty(orderId)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "order_id必传"; bll.ContextResponse(context, apiResp); return; } OrderPay orderPay = bllOrder.GetOrderPay(orderId); PayConfig payConfig = bllPay.GetPayConfig(); if (payConfig == null || string.IsNullOrEmpty(payConfig.WXAppId) || string.IsNullOrEmpty(payConfig.WXMCH_ID) || string.IsNullOrEmpty(payConfig.WXPartnerKey)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户微信支付还没有配置"; bll.ContextResponse(context, apiResp); return; } string appId = payConfig.WXAppId; //微信AppId string mchId = payConfig.WXMCH_ID; //商户号 string key = payConfig.WXPartnerKey; //api密钥 string openId = CurrentUserInfo.WXOpenId; //openid string ip = context.Request.UserHostAddress; //ip string notifyUrl = string.Format("http://{0}/WxPayNotify/SmsRechargeNotify.aspx", context.Request.Url.Authority); //支付充值通知地址 string body = ""; //订单内容 string payReqStr = bllPay.GetBrandWcPayRequest(orderPay.OrderId, orderPay.Total_Fee, appId, mchId, key, openId, ip, notifyUrl, body); BllPay.WXPayReq payReqModel = ZentCloud.Common.JSONHelper.JsonToModel <BllPay.WXPayReq>(payReqStr); if (string.IsNullOrEmpty(payReqModel.paySign)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "构造支付信息失败"; bll.ContextResponse(context, apiResp); return; } apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; apiResp.result = new { pay_req = payReqModel }; bll.ContextResponse(context, apiResp); }
public void TestMethod1() { // Database.SetInitializer(new MigrateDatabaseToLatestVersion<TicketDbContext,Configuration>()); BootStrapper.ConfigureDependencies(); IUnitOfWork unitOfWorkTicket = ObjectFactory.GetNamedInstance <IUnitOfWork>(EnumModule.DomesticTicket.ToString()); IUnitOfWorkRepository unitOfWorkRepositoryticket = ObjectFactory.GetNamedInstance <IUnitOfWorkRepository>(EnumModule.DomesticTicket.ToString()); Order order = new Order(); order.OrderId = "01305201230119290277"; order.PnrCode = "HPK3BQ"; order.OrderMoney = decimal.Parse("1000"); order.CreateTime = DateTime.Now; OrderPay orderPay = new OrderPay(); orderPay.PayMoney = decimal.Parse("1000"); order.OrderPay = orderPay ?? null; order.Policy = new Policy(); order.Policy.PolicyPoint = decimal.Parse("8"); order.Policy.PlatformCode = "517"; order.Policy.PolicyType = "1"; order.Policy.WorkTime = new StartAndEndTime(); order.Policy.WorkTime.StartTime = "9:00"; order.Policy.WorkTime.EndTime = "23:00"; order.Policy.ReturnTicketTime = new StartAndEndTime(); order.Policy.ReturnTicketTime.StartTime = "9:00"; order.Policy.ReturnTicketTime.EndTime = "23:00"; order.Policy.AnnulTicketTime = new StartAndEndTime(); order.Policy.AnnulTicketTime.StartTime = "9:00"; order.Policy.AnnulTicketTime.EndTime = "23:00"; order.Passengers = new List <Passenger>(); order.Passengers.Add(new Passenger { PassengerName = "测试", ABFee = decimal.Parse("50"), RQFee = decimal.Parse("120") }); order.OrderLogs = new List <OrderLog>(); order.OrderLogs.Add(new OrderLog { OperationContent = "新订单", OperationPerson = "test1", OperationDatetime = DateTime.Now }); order.SkyWays = new List <SkyWay>(); order.SkyWays.Add(new SkyWay { CarrayCode = "3U", FromCityCode = "CTU", ToCityCode = "PEK", Seat = "F", StartDateTime = DateTime.Parse("2013-12-05 11:15:00.000"), ToDateTime = DateTime.Parse("2013-12-05 11:17:00.000") }); unitOfWorkRepositoryticket.PersistCreationOf(order); unitOfWorkTicket.Commit(); }
/// <summary> /// 获取支付订单信息 hx add /// </summary> /// <param name="orderId"></param> /// <returns></returns> public dynamic GetOrderPayById(string orderId) { W_Order order = Orm.Single <W_Order>(x => x.OrderId == orderId); OrderPay order2 = null; if (order != null) { order2 = new OrderPay(); order2.ID = order.ID; order2.Price = order.Price; order2.OrderId = order.OrderId; order2.OrderPayDetailList = GetOrderPayDetailList(order.ID); } return(order2); }
/// <summary> /// 支付升级 /// </summary> /// <param name="orderPay"></param> /// <returns></returns> public bool PayUpgrade(OrderPay orderPay, string tradeNo) { string msg = ""; BLLJIMP.Model.API.User.PayUpgrade payUpgrade = JsonConvert.DeserializeObject <BLLJIMP.Model.API.User.PayUpgrade>(orderPay.Ex1); orderPay.Trade_No = tradeNo; UserLevelConfig levelConfig = bll.QueryUserLevel(orderPay.WebsiteOwner, "DistributionOnLine", payUpgrade.toLevel.ToString()); UserInfo currUser = bllUser.GetUserInfo(orderPay.UserId, orderPay.WebsiteOwner); if (!string.IsNullOrEmpty(levelConfig.CouponId)) { BLLCardCoupon bllCardCoupon = new BLLCardCoupon(); bllCardCoupon.SendCardCouponsByCurrUserInfo(currUser, levelConfig.CouponId); } return(bll.PayUpgradeTransfers(orderPay, payUpgrade, "", tradeNo, out msg)); }
public CommonPayModel(OrderPay model) { this.ParentId = model.OrderId; this.BalanceId = model.BalanceId; this.MemberId = model.MemberId; this.OriginalPrice = model.OriginalPrice; this.BalancePrice = model.BalancePrice; this.Rate = model.Rate; this.RemovePrice = model.RemovePrice; this.Price = model.Price; this.Member = model.tb_member; this.AddTime = model.AddTime; this.Remark = model.Remark; this.Type = "OrderPay"; this.PayId = model.OrderPayId; this.State = model.State; }
protected void Page_Load(object sender, EventArgs e) { string cur_order_id = this.Request["order_id"]; if (!bllPay.IsMobile) { errorMsg = "请用手机浏览器访问"; return; } if (string.IsNullOrWhiteSpace(cur_order_id)) { errorMsg = "订单号未找到"; return; } orderPay = bllOrder.GetOrderPay(cur_order_id, websiteOwner: bllOrder.WebsiteOwner, payType: 1); if (orderPay == null) { errorMsg = "订单未找到"; return; } if (orderPay.Status == 1) { errorMsg = "订单已经付款"; //formString = "<div style=\"height:100%;color:red;font-size:24px;text-algin:center;\">订单已经付款</div>"; return; } if (bllPay.IsWeiXinBrowser) { return; } try { PayConfig payConfig = bllPay.GetPayConfig(); string baseUrl = string.Format("http://{0}", this.Request.Url.Authority); string notifyUrl = baseUrl + "/Alipay/ShMemberNotifyUrl.aspx"; string formString = bllPay.GetAliPayRequestMobile(orderPay.OrderId, (double)orderPay.Total_Fee, payConfig.Seller_Account_Name, payConfig.Partner, payConfig.PartnerKey, notifyUrl); Response.Write(formString); } catch (Exception ex) { errorMsg = "支付页生成失败"; } }
static void Main(string[] args) { Console.WriteLine("Enter client data: "); Console.Write("Name: "); string clientName = Console.ReadLine(); Console.Write("Email: "); string email = Console.ReadLine(); Console.Write("Birth date (DD/MM/YYYY): "); DateTime birthDate = DateTime.Parse(Console.ReadLine()); Console.WriteLine("Enter order data: "); Console.Write("Status: "); OrderStatus status = Enum.Parse <OrderStatus>(Console.ReadLine()); Client client = new Client(clientName, email, birthDate); OrderPay order = new OrderPay(DateTime.Now, status, client); Console.Write("How many items to this order? "); int n = int.Parse(Console.ReadLine()); for (int i = 1; i <= n; i++) { Console.WriteLine($"Enter #{i} item data:"); Console.Write("Product name: "); string productName = Console.ReadLine(); Console.Write("Product price: "); double price = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Product product = new Product(productName, price); Console.Write("Quantity: "); int quantity = int.Parse(Console.ReadLine()); OrderItem orderItem = new OrderItem(quantity, price, product); order.AddItem(orderItem); } Console.WriteLine(); Console.WriteLine("ORDER SUMMARY:"); Console.WriteLine(order); }
public OrderPay GetOrderPay() { OrderPay model = new OrderPay(); model.OrderId = ParentId; model.BalanceId = BalanceId; model.MemberId = MemberId; model.BalancePrice = BalancePrice; model.OriginalPrice = OriginalPrice; model.Rate = Rate; model.RemovePrice = RemovePrice; model.Price = Price; model.tb_member = Member; model.AddTime = AddTime; model.Remark = Remark; model.OrderPayId = PayId; model.State = State; return(model); }
/// <summary> /// 订单信息 /// </summary> /// <param name="order"></param> /// <returns></returns> private Order GetOrderInfo(OrderPay order) { Order model = new Order(); switch (order.Type) { case "8": MeifanCard card = bll.GetCard(order.RelationId); if (card != null) { model.Title = card.CardName; model.ImgUrl = card.CardImg; model.Summary = card.CardNameEn; } break; default: break; } return(model); }
public void ProcessRequest(HttpContext context) { string scoreStr = context.Request["score"]; decimal score = Convert.ToDecimal(scoreStr); if (score == 0) { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "积分不能为0"; bllKeyValueData.ContextResponse(context, apiResp); return; } if (CurrentUserInfo == null) { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.UserIsNotLogin; apiResp.msg = "您还没有登录"; bllKeyValueData.ContextResponse(context, apiResp); return; } BllOrder bllOrder = new BllOrder(); BllPay bllPay = new BllPay(); PayConfig payConfig = bllPay.GetPayConfig(); string rechargeValue = bllKeyValueData.GetDataVaule("Recharge", "100", bllKeyValueData.WebsiteOwner); decimal rechargeFee = Convert.ToDecimal(rechargeValue); decimal totalFee = rechargeFee / 100 * score; string websiteOwner = bllKeyValueData.WebsiteOwner; OrderPay orderPay = new OrderPay(); orderPay.OrderId = bllOrder.GetGUID(TransacType.CommAdd); orderPay.InsertDate = DateTime.Now; orderPay.Status = 0; orderPay.Type = "1"; orderPay.Subject = "积分充值"; orderPay.Total_Fee = totalFee; orderPay.UserId = CurrentUserInfo.UserID; orderPay.WebsiteOwner = websiteOwner; orderPay.Ex1 = scoreStr; var non_str = Payment.WeiXin.CommonUtil.CreateNoncestr();//随机串 Dictionary <string, string> dic = new Dictionary <string, string>(); dic.Add("appid", payConfig.WXAppId); dic.Add("body", "订单" + orderPay.OrderId); dic.Add("mch_id", payConfig.WXMCH_ID);//商户号 dic.Add("nonce_str", non_str); dic.Add("out_trade_no", orderPay.OrderId); dic.Add("spbill_create_ip", context.Request.UserHostAddress); dic.Add("total_fee", (totalFee * 100).ToString("F0")); dic.Add("notify_url", string.Format("http://{0}/WxPayNotify/DoPayWxNotify.aspx", context.Request.Url.Authority)); dic.Add("trade_type", "NATIVE"); dic.Add("product_id", orderPay.OrderId); string strtemp = Payment.WeiXin.CommonUtil.FormatBizQueryParaMap(dic, false); string sign = Payment.WeiXin.MD5SignUtil.Sign(strtemp, payConfig.WXPartnerKey); dic = (from entry in dic orderby entry.Key ascending select entry).ToDictionary(pair => pair.Key, pair => pair.Value); dic.Add("sign", sign); string postData = Payment.WeiXin.CommonUtil.ArrayToXml(dic); string url = "https://api.mch.weixin.qq.com/pay/unifiedorder"; System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url); byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(postData); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.ContentLength = requestBytes.Length; Stream requestStream = req.GetRequestStream(); requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Close(); System.Net.HttpWebResponse res = (System.Net.HttpWebResponse)req.GetResponse(); StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8); string backStr = sr.ReadToEnd(); sr.Close(); res.Close(); var result = System.Xml.Linq.XDocument.Parse(backStr); var return_code = result.Element("xml").Element("return_code").Value; if (!return_code.ToUpper().Equals("SUCCESS")) { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; apiResp.msg = "预支付失败"; apiResp.result = new { return_msg = result.Element("xml").Element("return_msg").Value, post_data = postData }; bllKeyValueData.ContextResponse(context, apiResp); return; } var rusult_code = result.Element("xml").Element("result_code").Value; if (return_code.ToUpper().Equals("SUCCESS") && (rusult_code.ToUpper().Equals("SUCCESS"))) { var prepay_id = result.Element("xml").Element("prepay_id").Value; var code_url = result.Element("xml").Element("code_url").Value; orderPay.Trade_No = prepay_id; bllOrder.Add(orderPay); apiResp.code = (int)BLLJIMP.Enums.APIErrCode.IsSuccess; apiResp.msg = "预支付完成"; apiResp.status = true; apiResp.result = new { orderId = orderPay.OrderId, prepay_id = prepay_id, code_url = code_url }; } else { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; apiResp.result = result.Element("xml").Element("err_code_des").Value; apiResp.msg = "预支付失败"; } bllKeyValueData.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { decimal amount = Convert.ToDecimal(context.Request["amount"]); if (amount <= 0) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "金额必须大于0"; bll.ContextResponse(context, apiResp); return; } string websiteOwner = bll.WebsiteOwner; if (string.IsNullOrWhiteSpace(CurrentUserInfo.WXOpenId)) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "请先绑定微信"; bll.ContextResponse(context, apiResp); return; } PayConfig payConfig = bllPay.GetPayConfig(); if (payConfig == null || string.IsNullOrEmpty(payConfig.WXAppId) || string.IsNullOrEmpty(payConfig.WXMCH_ID) || string.IsNullOrEmpty(payConfig.WXPartnerKey)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户微信支付还没有配置"; bll.ContextResponse(context, apiResp); return; } OrderPay orderPay = new OrderPay(); orderPay.OrderId = bll.GetGUID(TransacType.PayRegisterOrder); orderPay.InsertDate = DateTime.Now; orderPay.Subject = "支付充值"; orderPay.Total_Fee = amount; orderPay.Type = "4"; orderPay.WebsiteOwner = websiteOwner; orderPay.UserId = CurrentUserInfo.UserID; if (!bll.Add(orderPay)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "生成支付订单失败"; bll.ContextResponse(context, apiResp); return; } string appId = payConfig.WXAppId; //微信AppId string mchId = payConfig.WXMCH_ID; //商户号 string key = payConfig.WXPartnerKey; //api密钥 string openId = CurrentUserInfo.WXOpenId; //openid string ip = context.Request.UserHostAddress; //ip string notifyUrl = string.Format("http://{0}/WxPayNotify/PayRechargeNotify.aspx", context.Request.Url.Authority); //支付充值通知地址 string body = ""; //订单内容 string payReqStr = bllPay.GetBrandWcPayRequest(orderPay.OrderId, orderPay.Total_Fee, appId, mchId, key, openId, ip, notifyUrl, body); BllPay.WXPayReq payReqModel = ZentCloud.Common.JSONHelper.JsonToModel <BllPay.WXPayReq>(payReqStr); if (string.IsNullOrEmpty(payReqModel.paySign)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "构造支付信息失败"; bll.ContextResponse(context, apiResp); return; } apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; apiResp.result = new { pay_req = payReqModel }; bllUser.ContextResponse(context, apiResp); }
/// <summary> /// 查看是否启用微信支付或者支付宝支付 /// </summary> public ResultPayInfo GetPayInfo(string JSon, string version) { string disID = string.Empty; string UserID = string.Empty; string OrderType = string.Empty; string ReceiptNo = string.Empty; string PayPrice = string.Empty; string PayIDJSon = string.Empty; string partner = string.Empty; string seller = string.Empty; string private_key = string.Empty; string subject = string.Empty; //提示内容 string GoodsName = string.Empty; //订单所有商品的名称 string OrderNumberJSon = string.Empty; //订单支付流水号的json string OrderNumber = string.Empty; //订单支付流水号 string orderInfo = string.Empty; //订单信息 string OrderCode = string.Empty; //企业订单号 DataTable dt_order = null; Hi.BLL.BD_Distributor bll_dis = new Hi.BLL.BD_Distributor(); Hi.BLL.BD_Company bll_comp = new Hi.BLL.BD_Company(); Hi.BLL.DIS_Order bll_order = new Hi.BLL.DIS_Order(); ResultPayInfo payinfo = new ResultPayInfo(); Common comm = new Common(); try { #region//JSon取值 JsonData JInfo = null; JInfo = JsonMapper.ToObject(JSon); if (JInfo.Count > 0 && JInfo["UserID"].ToString().Trim() != "" && JInfo["ResellerID"].ToString().Trim() != "" && JInfo["OrderType"].ToString().Trim() != "" && JInfo["PayPrice"].ToString().Trim() != "" && JInfo["PayIDJson"].ToString().Trim() != "") { UserID = JInfo["UserID"].ToString(); disID = JInfo["ResellerID"].ToString(); OrderType = JInfo["OrderType"].ToString(); PayPrice = JInfo["PayPrice"].ToString(); PayIDJSon = JInfo["PayIDJson"].ToString(); } else { return(new ResultPayInfo() { Result = "F", Description = "参数异常" }); } if (OrderType == "0") { if (JInfo["ReceiptNo"].ToString().Trim() != "") { ReceiptNo = JInfo["ReceiptNo"].ToString(); } else { return(new ResultPayInfo() { Result = "F", Description = "参数异常" }); } } #endregion //判断登录信息是否正确 Hi.Model.SYS_Users user = new Hi.Model.SYS_Users(); if (!new Common().IsLegitUser(int.Parse(UserID), out user, 0, int.Parse(disID == "" ? "0" : disID))) { return new ResultPayInfo() { Result = "F", Description = "用户异常" } } ; //判断经销商信息是否异常 Hi.Model.BD_Distributor dis = bll_dis.GetModel(Convert.ToInt32(disID)); if (dis == null || dis.dr == 1 || dis.AuditState == 0 || dis.IsEnabled == 0) { return new ResultPayInfo() { Result = "F", Description = "经销商异常" } } ; //判断经销商对应的核心企业是否异常 Hi.Model.BD_Company comp = bll_comp.GetModel(dis.CompID); if (comp == null || comp.dr == 1 || comp.AuditState == 0 || comp.IsEnabled == 0) { return new ResultPayInfo() { Result = "F", Description = "核心企业异常" } } ; //判断此订单的信息是否异常,是否可支付 //根据订单号,取出订单数据放入dt中 if (OrderType == "0") { dt_order = bll_order.GetData(ReceiptNo).Tables[0]; if (Convert.ToInt32(dt_order.Rows[0]["OState"]) == (int)Enums.OrderState.待审核 || Convert.ToInt32(dt_order.Rows[0]["OState"]) == (int)Enums.OrderState.已作废 || Convert.ToInt32(dt_order.Rows[0]["PayState"]) == (int)Enums.PayState.已支付) { return new ResultPayInfo() { Result = "F", Description = "订单信息异常" } } ; } //获取Pay_PayWxandAli表的实体 Hi.Model.Pay_PayWxandAli payali = Common.GetPayWxandAli(comp.ID); if (payali == null || ClsSystem.gnvl(payali.ali_isno, "0") == "0") { return new ResultPayInfo() { Result = "F", Description = "核心企业无可用的支付宝收款账户" } } ; //对数据库中数据进行解密 //partner = Common.DesDecrypt(payali.ali_partner, Common.EncryptKey); //seller = Common.DesDecrypt(payali.ali_seller_email, Common.EncryptKey); //private_key = Common.DesDecrypt(payali.ali_key, Common.EncryptKey); partner = payali.ali_partner; seller = payali.ali_seller_email; private_key = payali.ali_RSAkey; //订单支付跟预付款充值的提示信息(两种请款下的提示信息是不同的) if (OrderType == "0") { subject = "医站通订单-" + ReceiptNo; } else { subject = "医站通预付款充值"; } //订单所有商品明细 if (OrderType == "0") { DataTable l = new Hi.BLL.DIS_OrderDetail().GetOrderDe("", " IsNUll(o.dr,0)=0 and o.OrderId=" + Convert.ToInt32(dt_order.Rows[0]["ID"])); foreach (DataRow dr in l.Rows) { GoodsName += dr["GoodsName"] + ","; } GoodsName = GoodsName.Substring(0, GoodsName.Length - 1);//去掉最后一个逗号 if (GoodsName.Length > 15) { GoodsName = GoodsName.Substring(0, 10) + "..."; } } //获取订单支付时的支付流水号 if (OrderType == "0") { OrderNumberJSon = new OrderPay().GetPayID(PayIDJSon); //解析返回的订单支付流水号的JSon JInfo = JsonMapper.ToObject(OrderNumberJSon); if (JInfo["Result"].ToString().Trim() == "F" || JInfo["PayNumb"].ToString().Trim() == "" || JInfo["Result"].ToString().Trim() == "" || JInfo["OrderCode"].ToString().Trim() == "") { return(new ResultPayInfo() { Result = "F", Description = "获取支付流水号异常" }); } else { OrderNumber = JInfo["PayNumb"].ToString(); OrderCode = JInfo["OrderCode"].ToString(); } } else//钱包充值时的流水号跟企业订单号 { List <string> list = new List <string>(); list = Getpayidyfk(user.ID, comp.ID, dis.ID, PayPrice); OrderNumber = list[0]; OrderCode = list[1]; if (OrderNumber == "" || OrderCode == "") { return new ResultPayInfo() { Result = "F", Description = "获取支付流水号异常" } } ; } //创建订单信息 orderInfo = comm.getOrderInfo(subject, GoodsName, PayPrice, OrderNumber, partner, seller); // 对订单做RSA 签名 //private_key = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANDptrV3pWWdbnr6wT8lPkZ6kbRgsjf8CfXpQNrJyOsmktOaX8DQRh5nd0lSFTtbfeGV4oWXi26bv+1Vt+CfAsYssf+futRj0l6Cxx0psJapK7QEXq3HqjB0tM11M9ym75WFFvTSZs1DysUkRV35g5rXuRtBOWR2sqm9JRAen+29AgMBAAECgYEAzZ+L1xb5c4e960uOE1Hb9tDDQs/9+j6XqzQ3QmFj4Zeo4p9KaeRVb62U6lThUvgdcYDuYWEkuuyPvtEk1/CKb61AvEW69ehwLeDXOy9AzEgQpGFPb1bgJ+kU8YCpgcOGR9G55iVc0ZW7B2iyx111Wvij8pc+A2ZeuByAG1f8PoECQQD7wvCyBJRNb7Gv7iHF+zx2lDxG6LTX2rCAZdr8FyWVjZEBfL6uPI+/2J2AqtFPaLa25+jQc3b74r4wuGKsvxBhAkEA1G4aDQovfB9RO/c4I+NX4mmitpNt66IuqKp0a9pOL/YfpNtr5GBgmK4LMVASqIG74bw5wAV7zJkunlGGPusK3QJBALLiUm/KvS1AXbqpsymfV9jRfvrLQiPVaW/x72ULdVMMIaoy3rGiqmkgGtlfhhWsS5cutMfYIwTamVS4zrP7lkECQFTvDJVoHCI5d0ZNivG2ZR4OdFMhURKkTpl7RX8V0qsUcgR9An9WFWkWNT1rMXqUHGWd100yJBRirqP4Hn+rhDUCQBPVgm4jNd5WjKD0Oj39FmF5D89OviTgQK4xYxYUIfqLBhuGZ3kWDvAmeE6uRgVXjQncv/c68W8pS2huT0syom4="; //private_key = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRAFljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQEB/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5KsiNG9zpgmLCUYuLkxpLQIDAQAB"; string sign = Com.Alipay.RSAFromPkcs8.sign(orderInfo, private_key, "utf-8"); //string sign = RSAFromPkcs8.sign(orderInfo, private_key, "utf-8"); sign = HttpUtility.UrlEncode(sign, Encoding.UTF8); //返回实体 // 完整的符合支付宝参数规范的订单信息 payinfo.Result = "T"; payinfo.Description = "返回成功"; payinfo.InfoString = orderInfo + "&sign=\"" + sign + "\"&" + comm.getSignType(); payinfo.OrderCode = OrderCode; } catch (Exception ex) { Common.CatchInfo(ex.Message + ":" + ex.StackTrace, "GetPayInfo:" + JSon); return(new ResultPayInfo() { Result = "F", Description = "参数异常" }); } return(payinfo); }
public void ProcessRequest(HttpContext context) { BLLJIMP.Model.API.User.PayUpgrade payUpgrade = bll.ConvertRequestToModel <BLLJIMP.Model.API.User.PayUpgrade>(new BLLJIMP.Model.API.User.PayUpgrade()); payUpgrade.level = CurrentUserInfo.MemberLevel; string websiteOwner = bll.WebsiteOwner; UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", payUpgrade.level.ToString()); if (levelConfig == null) { payUpgrade.userTotalAmount = 0; } else { payUpgrade.userTotalAmount = Convert.ToDecimal(levelConfig.FromHistoryScore); } UserLevelConfig toLevelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", payUpgrade.toLevel.ToString()); if (toLevelConfig == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员等级未找到"; bll.ContextResponse(context, apiResp); return; } if (toLevelConfig.IsDisable == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别禁止升级"; bll.ContextResponse(context, apiResp); return; } payUpgrade.needAmount = Convert.ToDecimal(toLevelConfig.FromHistoryScore); payUpgrade.amount = payUpgrade.needAmount - payUpgrade.userTotalAmount; if (payUpgrade.amount < 0) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "暂时不支持降级"; bll.ContextResponse(context, apiResp); return; } if (string.IsNullOrWhiteSpace(CurrentUserInfo.WXOpenId)) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "请先绑定微信"; bll.ContextResponse(context, apiResp); return; } PayConfig payConfig = bllPay.GetPayConfig(); if (payConfig == null || string.IsNullOrEmpty(payConfig.WXAppId) || string.IsNullOrEmpty(payConfig.WXMCH_ID) || string.IsNullOrEmpty(payConfig.WXPartnerKey)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户微信支付还没有配置"; bll.ContextResponse(context, apiResp); return; } OrderPay orderPay = new OrderPay(); orderPay.OrderId = bll.GetGUID(TransacType.PayRegisterOrder); orderPay.InsertDate = DateTime.Now; orderPay.Subject = "支付升级"; orderPay.Total_Fee = payUpgrade.amount; orderPay.Type = "6"; orderPay.WebsiteOwner = websiteOwner; orderPay.UserId = CurrentUserInfo.UserID; orderPay.Ex1 = JsonConvert.SerializeObject(payUpgrade); if (!bll.Add(orderPay)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "生成支付订单失败"; bll.ContextResponse(context, apiResp); return; } string appId = payConfig.WXAppId; //微信AppId string mchId = payConfig.WXMCH_ID; //商户号 string key = payConfig.WXPartnerKey; //api密钥 string openId = CurrentUserInfo.WXOpenId; //openid string ip = context.Request.UserHostAddress; //ip string notifyUrl = string.Format("http://{0}/WxPayNotify/PayUpgradeNotify.aspx", context.Request.Url.Authority); //支付升级通知地址 string body = ""; //订单内容 string payReqStr = bllPay.GetBrandWcPayRequest(orderPay.OrderId, orderPay.Total_Fee, appId, mchId, key, openId, ip, notifyUrl, body); BllPay.WXPayReq payReqModel = ZentCloud.Common.JSONHelper.JsonToModel <BllPay.WXPayReq>(payReqStr); if (string.IsNullOrEmpty(payReqModel.paySign)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "构造支付信息失败"; bll.ContextResponse(context, apiResp); return; } apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; apiResp.result = new { pay_req = payReqModel }; bllUser.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { string data = context.Request["data"]; RequestModel requestModel; try { requestModel = ZentCloud.Common.JSONHelper.JsonToModel <RequestModel>(context.Request["data"]); } catch (Exception) { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.IsNotFound; apiResp.msg = "json格式错误,请检查"; bll.ContextResponse(context, apiResp); return; } if (string.IsNullOrEmpty(requestModel.type)) { apiResp.msg = "type 为必填项,请检查"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.IsNotFound; bll.ContextResponse(context, apiResp); return; } OrderPay model = new OrderPay(); model.OrderId = bll.GetGUID(BLLJIMP.TransacType.CommAdd); model.InsertDate = DateTime.Now; model.Type = requestModel.type; model.WebsiteOwner = bll.WebsiteOwner; model.UserId = bll.GetCurrUserID(); model.Status = 0; model.PayType = requestModel.pay_type; model.Ex1 = bll.GetCurrentUserInfo().TrueName; model.BuySmsNumber = requestModel.sms_number; model.BuySmsTotalCount = requestModel.sms_number * requestModel.sms_count; model.Total_Fee = requestModel.sms_number * requestModel.sms_price; if (model.Type == "1") { model.Subject = "账户充值"; } else if (model.Type == "2") { model.Subject = "购买VIP"; } else if (model.Type == "3") { model.Subject = "信用金充值"; } else if (model.Type == "7") { model.Subject = "短信充值"; model.UserId = requestModel.userid; } if (bll.Add(model)) { apiResp.status = true; apiResp.msg = "ok"; apiResp.result = model.OrderId; } else { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.IsNotFound; apiResp.msg = "操作出错"; } bll.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { string orderId = context.Request["order_id"]; string callbackUrl = context.Request["callback_url"]; if (string.IsNullOrEmpty(orderId)) { apiResp.msg = "请传入订单编号"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.IsNotFound; bllPay.ContextResponse(context, apiResp); return; } OrderPay orderInfo = bllOrder.GetOrderPay(orderId); if (orderInfo == null) { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.IsNotFound; apiResp.msg = "不存在订单"; bllPay.ContextResponse(context, apiResp); return; } if (orderInfo.UserId != CurrentUserInfo.UserID) { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; apiResp.msg = "无效订单"; bllPay.ContextResponse(context, apiResp); return; } if (orderInfo.Status == 1) { apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; apiResp.msg = "订单已经支付,不需重复支付"; bllPay.ContextResponse(context, apiResp); return; } RequestAlipay aliPay = new RequestAlipay(); aliPay.notify_url = "http://" + context.Request.Url.Host + "/Alipay/NotifyAplipay.aspx";//支付通知地址 PayConfig payConfig = bllPay.GetPayConfig(); aliPay.order_id = orderInfo.OrderId; aliPay.total_fee = orderInfo.Total_Fee; aliPay.seller_account_name = payConfig.Seller_Account_Name; aliPay.partner = payConfig.Partner; aliPay.key = payConfig.PartnerKey; try { string payReqStr = bllPay.GetAliPayRequestMobile(aliPay.order_id, Convert.ToDouble(aliPay.total_fee), aliPay.seller_account_name, aliPay.partner, aliPay.key, aliPay.notify_url, "", callbackUrl, ""); if (!string.IsNullOrEmpty(payReqStr)) { apiResp.result = payReqStr; apiResp.status = true; } } catch (Exception ex) { apiResp.msg = ex.ToString(); } bllPay.ContextResponse(context, apiResp); }
protected void Page_Load(object sender, EventArgs e) { try { Order = bllOrder.GetOrderPay(Request["oid"]); if (Order == null) { Response.Write("订单不存在"); Response.End(); } if (!Order.Status.Equals(0)) { Response.Write("订单不是未支付状态"); Response.End(); } //支付宝网关地址 string GATEWAY_NEW = "http://wappaygw.alipay.com/service/rest.htm?"; ////////////////////////////////////////////调用授权接口alipay.wap.trade.create.direct获取授权码token//////////////////////////////////////////// //返回格式 string format = "xml"; //必填,不需要修改 //返回格式 string v = "2.0"; //必填,不需要修改 //请求号 string req_id = DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(0, 99999); //必填,须保证每次请求都是唯一 //req_data详细信息 //服务器异步通知页面路径 string notify_url = string.Format("http://{0}/alipay/notifyurl.aspx", Request.Url.Host); //需http://格式的完整路径,不允许加?id=123这类自定义参数 //页面跳转同步通知页面路径 string call_back_url = string.Format("http://{0}/alipay/call_back_url.aspx", Request.Url.Host); //需http://格式的完整路径,不允许加?id=123这类自定义参数 //操作中断返回地址 string merchant_url = string.Format("http://{0}/alipay/merchanturl.aspx", Request.Url.Host); //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数 //卖家支付宝帐户 //string seller_email = "*****@*****.**"; string seller_email = Config.Seller_Account_Name; //必填 //商户订单号 string out_trade_no = Order.OrderId; //商户网站订单系统中唯一订单号,必填 //订单名称 string subject = Order.OrderId; //必填 //付款金额 string total_fee = Order.Total_Fee.ToString(); //必填 //请求业务参数详细 string req_dataToken = "<direct_trade_create_req><notify_url>" + notify_url + "</notify_url><call_back_url>" + call_back_url + "</call_back_url><seller_account_name>" + seller_email + "</seller_account_name><out_trade_no>" + out_trade_no + "</out_trade_no><subject>" + subject + "</subject><total_fee>" + total_fee + "</total_fee><merchant_url>" + merchant_url + "</merchant_url></direct_trade_create_req>"; //必填 //把请求参数打包成数组 Dictionary <string, string> sParaTempToken = new Dictionary <string, string>(); sParaTempToken.Add("partner", Config.Partner); sParaTempToken.Add("_input_charset", Config.Input_charset.ToLower()); sParaTempToken.Add("sec_id", Config.Sign_type.ToUpper()); sParaTempToken.Add("service", "alipay.wap.trade.create.direct"); sParaTempToken.Add("format", format); sParaTempToken.Add("v", v); sParaTempToken.Add("req_id", req_id); sParaTempToken.Add("req_data", req_dataToken); //建立请求 string sHtmlTextToken = Submit.BuildRequest(GATEWAY_NEW, sParaTempToken); //URLDECODE返回的信息 Encoding code = Encoding.GetEncoding(Config.Input_charset); sHtmlTextToken = HttpUtility.UrlDecode(sHtmlTextToken, code); //解析远程模拟提交后返回的信息 Dictionary <string, string> dicHtmlTextToken = Submit.ParseResponse(sHtmlTextToken); //获取token string request_token = dicHtmlTextToken["request_token"]; ////////////////////////////////////////////根据授权码token调用交易接口alipay.wap.auth.authAndExecute//////////////////////////////////////////// //业务详细 string req_data = "<auth_and_execute_req><request_token>" + request_token + "</request_token></auth_and_execute_req>"; //必填 //把请求参数打包成数组 Dictionary <string, string> sParaTemp = new Dictionary <string, string>(); sParaTemp.Add("partner", Config.Partner); sParaTemp.Add("_input_charset", Config.Input_charset.ToLower()); sParaTemp.Add("sec_id", Config.Sign_type.ToUpper()); sParaTemp.Add("service", "alipay.wap.auth.authAndExecute"); sParaTemp.Add("format", format); sParaTemp.Add("v", v); sParaTemp.Add("req_data", req_data); //建立请求 string sHtmlText = Submit.BuildRequest(GATEWAY_NEW, sParaTemp, "get", "确认"); Response.Write(sHtmlText); } catch (Exception ex) { Response.Write(ex.ToString()); Response.End(); } }
public void BuildOrder(HttpContext context, int payType, UserInfo user) { BLLJIMP.Model.API.User.PayUpgrade payUpgrade = bll.ConvertRequestToModel <BLLJIMP.Model.API.User.PayUpgrade>(new BLLJIMP.Model.API.User.PayUpgrade()); payUpgrade.level = user.MemberLevel; string websiteOwner = bll.WebsiteOwner; UserLevelConfig levelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", payUpgrade.level.ToString()); if (levelConfig == null) { payUpgrade.userTotalAmount = 0; } else { payUpgrade.userTotalAmount = Convert.ToDecimal(levelConfig.FromHistoryScore); } UserLevelConfig toLevelConfig = bll.QueryUserLevel(websiteOwner, "DistributionOnLine", payUpgrade.toLevel.ToString()); if (toLevelConfig == null) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员等级未找到"; bll.ContextResponse(context, apiResp); return; } if (toLevelConfig.IsDisable == 1) { apiResp.code = (int)APIErrCode.IsNotFound; apiResp.msg = "会员级别禁止升级"; bll.ContextResponse(context, apiResp); return; } payUpgrade.needAmount = Convert.ToDecimal(toLevelConfig.FromHistoryScore); payUpgrade.amount = payUpgrade.needAmount - payUpgrade.userTotalAmount; if (payUpgrade.amount < 0) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "暂时不支持降级"; bll.ContextResponse(context, apiResp); return; } PayConfig payConfig = bllPay.GetPayConfig(); if (payType == 1 && !bllPay.IsAliPay(payConfig)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户支付宝支付还没有配置"; bll.ContextResponse(context, apiResp); return; } else if (payType == 2 && !bllPay.IsJDPay(payConfig)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "该商户京东支付还没有配置"; bll.ContextResponse(context, apiResp); return; } OrderPay orderPay = new OrderPay(); orderPay.OrderId = bll.GetGUID(TransacType.PayRegisterOrder); orderPay.InsertDate = DateTime.Now; orderPay.Subject = "支付升级"; orderPay.Total_Fee = payUpgrade.amount; orderPay.Type = "6"; orderPay.WebsiteOwner = websiteOwner; orderPay.UserId = user.UserID; orderPay.Ex1 = JsonConvert.SerializeObject(payUpgrade); orderPay.PayType = payType; if (!bll.Add(orderPay)) { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "生成支付订单失败"; bll.ContextResponse(context, apiResp); return; } apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; apiResp.result = new { user_id = user.AutoID, pay_order_id = orderPay.OrderId }; bllUser.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { string cardId = context.Request["card_id"]; var userId = context.Request["user_id"]; if (string.IsNullOrEmpty(cardId)) { apiResp.msg = "card_id 必传"; bll.ContextResponse(context, apiResp); return; } var orderModel = bll.Get <OrderPay>(string.Format(" UserId='{0}' And Status=1 And Type=8 And RelationId='{1}'", userId, cardId)); if (orderModel != null) { if (DateTime.Now < DateTime.Parse(orderModel.Ex4)) { apiResp.msg = "重复订单"; bll.ContextResponse(context, apiResp); return; } } MeifanCard card = bll.GetCard(cardId); if (card == null) { apiResp.msg = "card_id 错误"; bll.ContextResponse(context, apiResp); return; } OrderPay order = new OrderPay(); order.WebsiteOwner = bll.WebsiteOwner; order.InsertDate = DateTime.Now; order.UserId = userId; order.Type = "8"; order.OrderId = bll.GetGUID(BLLJIMP.TransacType.CommAdd); order.Total_Fee = card.Amount + card.ServerAmount; order.Subject = card.CardName; order.PayType = 0; order.Status = 1; order.RelationId = card.CardId; order.Ex1 = "0"; order.Ex5 = "1"; if (bll.Add(order)) { apiResp.status = true; apiResp.msg = "ok"; //apiResp.result = new //{ // order_id = order.OrderId //}; } else { apiResp.msg = "生成订单失败"; } bll.ContextResponse(context, apiResp); }
protected void Page_Load(object sender, EventArgs e) { try { //Tolog("进入支付回调"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Request.InputStream); //xmlDoc.Load(@"D:\PayRegisterNotify20170613203329981.xml"); xmlDoc.Save(string.Format("C:\\WXPay\\PayRegisterNotify{0}.xml", DateTime.Now.ToString("yyyyMMddHHmmssfff")));//写入日志 //全部参数 Dictionary <string, string> parametersAll = new Dictionary <string, string>(); foreach (XmlElement item in xmlDoc.DocumentElement.ChildNodes) { string key = item.Name; string value = item.InnerText; if ((!string.IsNullOrEmpty(key)) && (!string.IsNullOrEmpty(value))) { parametersAll.Add(key, value); } } parametersAll = (from entry in parametersAll orderby entry.Key ascending select entry).ToDictionary(pair => pair.Key, pair => pair.Value); //全部参数排序 PayConfig payConfig = bllPay.GetPayConfig(); if (!bllPay.VerifySignatureWx(parametersAll, payConfig.WXPartnerKey)) //验证签名 { Tolog("验证签名出错"); Response.Write(failXml); return; } OrderPay orderPay = bllOrder.GetOrderPay(parametersAll["out_trade_no"]); if (orderPay == null) { Tolog("订单未找到"); Response.Write(failXml); return; } if (orderPay.Status.Equals(1)) { Tolog("已支付"); Response.Write(successXml); return; } BLLJIMP.Model.API.User.PayRegisterUser requestUser = JsonConvert.DeserializeObject <BLLJIMP.Model.API.User.PayRegisterUser>(orderPay.Ex1); UserLevelConfig levelConfig = bll.QueryUserLevel(orderPay.WebsiteOwner, "DistributionOnLine", requestUser.level.ToString()); if (levelConfig == null) { Tolog("会员等级未找到"); Response.Write(failXml); return; } //更新订单状态 if (parametersAll["return_code"].Equals("SUCCESS") && parametersAll["result_code"].Equals("SUCCESS"))//交易成功 { UserInfo regUser = bllUser.GetUserInfoByPhone(requestUser.phone, orderPay.WebsiteOwner); if (regUser != null && regUser.MemberLevel >= 10) { Tolog("该手机已注册会员"); Response.Write(failXml); return; } if (regUser != null && regUser.MemberLevel > requestUser.level) { Tolog("该会员有更高级别"); Response.Write(failXml); return; } if (regUser != null) { regUser.UserType = 2; regUser.TrueName = requestUser.truename; regUser.DistributionOwner = requestUser.spreadid; regUser.MemberLevel = requestUser.level; regUser.MemberStartTime = DateTime.Now; regUser.MemberApplyTime = orderPay.InsertDate; regUser.RegIP = requestUser.regIP; regUser.Password = requestUser.password; regUser.MemberApplyStatus = 9; regUser.IdentityCard = requestUser.idcard; regUser.Province = requestUser.province; regUser.City = requestUser.city; regUser.District = requestUser.district; regUser.Town = requestUser.town; regUser.ProvinceCode = requestUser.provinceCode; regUser.CityCode = requestUser.cityCode; regUser.DistrictCode = requestUser.districtCode; regUser.TownCode = requestUser.townCode; regUser.RegUserID = null; regUser.RegisterWay = "线上"; regUser.IsDisable = 0; regUser.RegUserID = null; } else { regUser = new UserInfo(); regUser.UserID = requestUser.userid; regUser.UserType = 2; regUser.TrueName = requestUser.truename; regUser.WebsiteOwner = orderPay.WebsiteOwner; regUser.DistributionOwner = requestUser.spreadid; regUser.Phone = requestUser.phone; regUser.MemberLevel = requestUser.level; regUser.MemberStartTime = DateTime.Now; regUser.MemberApplyTime = orderPay.InsertDate; regUser.Regtime = DateTime.Now; regUser.LastLoginDate = DateTime.Parse("1970-01-01"); regUser.RegIP = requestUser.regIP; regUser.Password = requestUser.password; regUser.MemberApplyStatus = 9; regUser.IdentityCard = requestUser.idcard; regUser.Province = requestUser.province; regUser.City = requestUser.city; regUser.District = requestUser.district; regUser.Town = requestUser.town; regUser.ProvinceCode = requestUser.provinceCode; regUser.CityCode = requestUser.cityCode; regUser.DistrictCode = requestUser.districtCode; regUser.TownCode = requestUser.townCode; regUser.RegisterWay = "线上"; regUser.IsDisable = 0; regUser.RegUserID = null; } string msg = ""; orderPay.Trade_No = parametersAll["transaction_id"]; //线上注册分佣 if (!bll.PayRegisterTransfers(regUser, orderPay, parametersAll["openid"], parametersAll["transaction_id"], levelConfig, out msg)) { Tolog(msg); Response.Write(failXml); return; } //发送优惠券 if (!string.IsNullOrEmpty(levelConfig.CouponId)) { BLLCardCoupon bllCardCoupon = new BLLCardCoupon(); bllCardCoupon.SendCardCouponsByCurrUserInfo(regUser, levelConfig.CouponId); } Response.Write(successXml); return; } Tolog("返回信息有误"); Response.Write(failXml); } catch (Exception ex) { Tolog("出错了:" + ex.ToString()); Response.Write(failXml); } }
protected void Page_Load(object sender, EventArgs e) { try { //Tolog("进入支付回调"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Request.InputStream); xmlDoc.Save(string.Format("C:\\WXPay\\PayRechargeNotify{0}.xml", DateTime.Now.ToString("yyyyMMddHHmmssfff")));//写入日志 //全部参数 Dictionary <string, string> parametersAll = new Dictionary <string, string>(); foreach (XmlElement item in xmlDoc.DocumentElement.ChildNodes) { string key = item.Name; string value = item.InnerText; if ((!string.IsNullOrEmpty(key)) && (!string.IsNullOrEmpty(value))) { parametersAll.Add(key, value); } } parametersAll = (from entry in parametersAll orderby entry.Key ascending select entry).ToDictionary(pair => pair.Key, pair => pair.Value); //全部参数排序 PayConfig payConfig = bllPay.GetPayConfig(); if (!bllPay.VerifySignatureWx(parametersAll, payConfig.WXPartnerKey)) //验证签名 { Tolog("验证签名出错"); Response.Write(failXml); return; } OrderPay orderPay = bllOrder.GetOrderPay(parametersAll["out_trade_no"]); if (orderPay == null) { Tolog("订单未找到"); Response.Write(failXml); return; } if (orderPay.Status.Equals(1)) { Tolog("已支付"); Response.Write(successXml); return; } //更新订单状态 if (parametersAll["return_code"].Equals("SUCCESS") && parametersAll["result_code"].Equals("SUCCESS"))//交易成功 { string msg = ""; orderPay.Trade_No = parametersAll["transaction_id"]; if (!bll.PayRechargeTransfers(orderPay, parametersAll["openid"], parametersAll["transaction_id"], out msg)) { Tolog(msg); Response.Write(failXml); return; } Response.Write(successXml); return; } Tolog("返回信息有误"); Response.Write(failXml); } catch (Exception ex) { Tolog("出错了:" + ex.Message); Response.Write(failXml); } }
public void ProcessRequest(HttpContext context) { try { Tolog("京东支付通知start"); PayConfig payConfig = bllPay.GetPayConfig(); byte[] byts = new byte[context.Request.InputStream.Length]; context.Request.InputStream.Read(byts, 0, byts.Length); string req = Encoding.UTF8.GetString(byts); Tolog("通知参数" + req); //string req = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><jdpay><version>V2.0</version><merchant>110226843002</merchant><result><code>000000</code><desc>success</desc></result><encrypt>NDdmNmZkNjQwNzBiYzEzMmE5N2ExMTg3YjkxNmQ4NzkxYzQyMmFjZjM4YTM1MjZjY2JjNzM1ZDkxY2Q5ZDNmMTMzMGFjYTBkNTI0MzYzNjc3MTVhODI3OWUzZTAxMmY5ODEyOTVmNDNiNWY5MDZhZGJiYTcwYTYyOTFlYzVmYTU2Y2EyN2U1YzhkNzllMGE3ZTUyNDE4NWU4OWMxNjIwNDFkODcyYzJiZDA4ZWY4YWEyMmY5ZWUxNDk3YTg3MTI3YmU1NTMxNjc5NWJiOTlmN2ZmNGU1MTc1YWJhNjNkYjUzYWUwZDQzOTk4ZjIzMjBiYmVkNGJkMDcxOWUzOThjZjU1ODUwNzM4Y2RiNzM2Njc1N2U2ZTcxN2Q0N2ZiYTZmN2M1YzBiYzRmMjc4ZThiZDNhYTkxZTExNzBiYjg2ZDNjNmQ3OWUyZTBlYjUzZWNlZjFjODQ2MzdiN2E5MTQxN2Y3NmRhZmNkNDdiMzMwNjc1MGRhYjhiYzg0NTFkOWNiZTQ2NGQ0M2FmY2Q0NDcwZDU2NzQzM2UzM2UxNjg2M2ViMDYzMzU0MjQ1NDZiNGZmM2RmNDA2NWJmYjQ5MjdkZWMyMDcwYjM3ODQ5OTQzMjRmNDJlMzllODUxN2ZkYmQwYTU3MTBhOTIyMzAwM2JiZDQ0MmNhYzE5ZjZkMzE5OWY4MDdmNjJlMWZiMWM1MjkzYjA1NWIwZDk0NmMxMjk0NzgwMDliYWRhZThiNjVkZDZiZDk5Y2E5YzIxZWFkN2NkZmUxOWE2MDc3MzQyYjhiYTIzY2ZkZTBhYjliOTdiMjkzYjRjYzNmMzFmOTkwYzExZGJjNzViZDJjNGQzMzU5NWFkMmMzM2UzZGUyZGRhMjljY2Q0MjBiZTg5OTYzMGEzNDdlM2FkZDY2YzNhOTE2YTNmMjUyNmU0MDQyYTM3YjYyOTRkYzI4MThiNWNmMmZmY2I1YTNjNDdiNmUyY2U0NTJiNDE2N2ZmOWIwY2MwZmYxOTQwZTliZGViNTQ0ZjMzNjYxYzZiNTBhNDAyZDM3NmI2YWQ4YjA0M2NmZDNhMzViZjYzZTg4OWUyYmMwNmExNmEwZmVhMzdiYTQzNDVkMWUyMWE5OGM3MDhjNTA4ODBjZTYyYTM2NmQyMjM4MDQ0OTY1YWVjOTUxNTVkYmJlYzYzYzgwZTFkNGRiZTJmYzA4Yzc1MWE5ZTdiNTFjYmM3MDZkMWJhOGM2Njc1OWQ2MWViOGE2YjM0YWZkYTIwMTMxZDE3N2IzZWE5NDljYTY4N2IxZGY3MGQxNjhmYTBjN2U0MDhhNTFkZDhjYjUwYmVhYTA5NDdmMmQ1YzM2YjViMzYxNWU5YjYzNDcxNWJmYzNmYWQ0NjBjYzI2NTNiNTM1ZWNhNjUzMDU0NGVkM2ExZmE3NGE0Yzg2OThkMmY0ZTIyM2U4MjMwZDYyNDYzZWY2NDFhOTlhZmU3NmRiZDgyMmE0NWQ3ODA1ZTNmMTZjNTUxMWVhZTI4ZTZiMmQwN2Y1N2EwZDVjMjZjOWNjMzBlZDAzYmE0YWM2M2UzMmJmMTMwNjk1ZmUzN2NhMjlhMWZjN2FlYjgwY2JlYWM2ZjRiZTk4OWFkZGI3N2ZhMTgyNDc2ZDA2MDIyMzllNDY5ODc5ZmE3MzUyNWI0Yzc4MDAyNWIyY2VlYzY3NTExNmVhMjk4ZGNiZGU2ZWE1ODlkOTNjMTA0M2ZkNTBiNTI0OTYzODg2OWRmOTFiNjNmZDUzZDRhM2FjZmIwNWZiZmJkMTU1NWYyNGRiNDc1ZTIzN2I5ZWIwZjcwNGI5NzRiMTlmYzE2N2MyYzE0Y2M4ZGZmYzQ4YmZkNjI0MmZiZTQwMDMzODg2OWRmOTFiNjNmZDUzZDkxZGE4ZWNhODI0ZjU2YzhkODNhMGViNzYyNDI5NmE1ZmZkODQ0YzcxNTA1NjY2NDI4MTZiYWI3YmNlZmFkZjdkOWMwMmYxYTBlNTg2MzhkMWNiYWMwZWE4NzA5YmViMmE4NzY5Mjc0ZTcwN2MyNGFiMGM3YzAzYjBiYjNkZmYyZDI4OWRjNjZjYzU4N2U2ZDBjM2RjOTZhY2M4OTFhN2JkNWNmZWNmYWViYjIxODE5OTRhMjBlYTllMmU1ZWRhNzFiNDI0MmUwNmI1YWMyNzZlNzJkNWNmMDk2M2MyODlhNzFhOTY1M2I5MzkzNDk0NjA3MTQ3NTg2YjlmNmU4ZThhMDRjYTAzMDlkYmNkYzNlOThlMjRmYWExMTRiYWY0ODcxNzY2ZjNlNDViMzljMzdlNWZlYTQzMWZjNTQwNWZlMjYzNGJmYTM2YWM4OWFhNzVmYjhhMWNiMjUwZTJlODE=</encrypt></jdpay>"; //var jdPubKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCKE5N2xm3NIrXON8Zj19GNtLZ8xwEQ6uDIyrS3S03UhgBJMkGl4msfq4Xuxv6XUAN7oU1XhV3/xtabr9rXto4Ke3d6WwNbxwXnK5LSgsQc1BhT5NcXHXpGBdt7P8NMez5qGieOKqHGvT0qvjyYnYA29a8Z4wzNR7vAVHp36uD5RwIDAQAB"; //req = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><jdpay><version>V2.0</version><merchant>110226843002</merchant><result><code>000000</code><desc>success</desc></result><encrypt>MDIxZjNkNjI1YjU1NzQ4MWE5N2ExMTg3YjkxNmQ4NzkxYzQyMmFjZjM4YTM1MjZjY2JjNzM1ZDkxY2Q5ZDNmMTMzMGFjYTBkNTI0MzYzNjc3MTVhODI3OWUzZTAxMmY5ODEyOTVmNDNiNWY5MDZhZGJiYTcwYTYyOTFlYzVmYTU2Y2EyN2U1YzhkNzllMGE3ZTUyNDE4NWU4OWMxNjIwNDFkODcyYzJiZDA4ZWY4YWEyMmY5ZWUxNDk3YTg3MTI3YmU1NTMxNjc5NWJiOTlmN2ZmNGU1MTc1YWJhNjNkYjUzYWUwZDQzOTk4ZjIzMjBiYmVkNGJkMDcxOWUzOThjZjU1ODUwNzM4Y2RiNzM2Njc1N2U2ZTcxN2Q0N2ZiYTZmN2M1YzBiYzRmMjc4ZThiZDNhYTkxZTExNzBiYjg2ZDNjNmQ3OWUyZTBlYjUzZWNlZjFjODQ2MzdiN2E5MTQxN2Y3NmRhZmNkNDdiMzMwNjc1MGRhYjhiYzg0NTFkOWNiY2QyMDZhOTJiYzU2YTFiOWEwMjRmNTZhMWZhNTVhNjlmYTA1ZDFlMmI0YTI4MGE1YTU0N2NlMjc3ZWMwM2QyNWE4ODdlOTA0ZGM3YTY2MDViY2I1OTI5MDBlYWU4MGU0Mzc4MmEwOWY3ZjEwZTk5MGZkOGUzYTA4MzNkNGMyZGZkNWM3MDhkOGU4N2NhMmQyZGM1MDgwYzUyOTg3OGNkMzFhZWRkMTE1NDM5ZjExYTM2OGM2OGE4MGZjZTYyMjJkNzlmODcwNGYyNDMzMTYyZThhZTBkODM2ODBjYzg5ZGRjMWY3ZGVmYzQzYjc4MDZiMDNhMTBmZTc2YjI3MThjYjQ0YjQwZDkyY2E3OGUzYmYzZmFlNjBlOTI4OGU1ODVkNjBjMWZiNDBmMjFjNzVmNDkxYmRkYWFlNzQ0YjZkYmU1ODNkOWQ4OGYwN2EyMDViOWQ5MGNjMzViMTE3MDQ4NWVlNTdlN2Y5MTRhZDM3YzFlODY1NDFiZmQyNDg1MzhlZGZiNDNiZWZmZjY3YmE3NWQ5YjI0MzE4ZDMzMDE5NTE3YWM4ZTJiMDZhZWYyM2NhNjMwODc3MDhkNTdkZWI3MWVhMmY2MzA2ZDliZjBmZGFlNzQ3ODgzODg0ZjVhOWFkODIxYWM0NGQ1ZDlmMGRlNDhkMjBiYTJjYmQ4NTlkMmU3NDMxZDExZmRjMzkxMDU3ZmE3NGE0Yzg2OThkMmY0ZWQ1ZjE3MjIwOWQ1ZTBmZGIzZjFhNGYwOTllZWY5YzRiMWYyZDAxZjlhNzhlYWY5ZjU0YmIyZjczNmUxMjJkNWY2NzhlMDFmYjU0YjY3NWRlYTc1ZWZkNmMwNTJhZmY3ZGVhMGM5NjAyMWQwMGQyMjI2NzdhM2RlNDdhMTdkMWI4ZWQxYmEyYWZlZDg1ZjI4NDk2ZmI2MGVjOTc5OTc4MjgzZTEyNzY2ZmI1OWUzZjY1MWI4OTVlMmQ4OGNlNGRhODg0NzJiNTFiN2RmZDc5NzdkNDk4NTY0NGU4ZjBmNGZjMTM3MmUzMGNhMTUwOTFkNDFhODIzMjZiODU0YjMzNmI1N2EwZDVjMjZjOWNjMzBlMjFjZjNkMDA0NjQ4Zjk0NjQzZWRhOTU1MmIyZjJkYzZjNGJmOTU5MDIzNTBlODlmOTNhZDRhYmEyMzZiY2E1OWE4NzY5Mjc0ZTcwN2MyNGFjNGJmOTU5MDIzNTBlODlmNDNlZGE5NTUyYjJmMmRjNjU0MTNlZjYxZTNlODc4MDk3MmNiYjg3NTVjNmU1NWNlZDljNWU0ZDE5ZTRmZjJjZTAxNmJiMGIzYWFlOTdlYTQzYmM5NWVmMGU0ZjUyNzY4NDNlZGE5NTUyYjJmMmRjNmMyOWRiYWZkYTNjYzQ1M2E3ZGJhZWNjZWJmNGIxZmQ5MTMxMmRiMzliOTU2YzBmNmNiODMxMDQ1ZDBiYjM1ZTNmMzlmMGE0ODNiN2M3ODYyZjNjMTFiN2ZiODljNDNkMjE4NGFlNzU5M2JhMmQ2YTJkOWMwMmYxYTBlNTg2MzhkYzU0NzE0NjExNzkyNGU4ZjQ4NDgzMTAyNDY5OGRlNGZiMDVmNGQzNzE3NGMwOGI2NGU2NjkxMmU2NGY5M2I0YjNiMThmMzZiZmY0NTgwN2FjMDAxOWRlY2ZkYTcyOGFmNzIyZTQwNjhlMTViM2UwMmQzMmRiYjJkOTE2MmQzNWMzZWM2OGRkZjJjMjdmOTRhZGNmYzEzOTdlOWY0NjQwODFiYWU0Y2E3Y2NjZDY0NjQzNGFmZWU4ODExYWRiZTBlY2MwY2JlOThmNDliMDZkYjE2YjNjNTZhOTRiOGZkMDU=</encrypt></jdpay>"; //req = Regex.Replace(req, @"[\t\n\r]", "", RegexOptions.IgnoreCase); req = req.Replace("\r", "").Replace("\n", "").Replace("\t", ""); AsynNotifyResponse anyResponse = Payment.JDPay.XMLUtil.decryptResXml <AsynNotifyResponse>(Payment.JDPay.Config.JDPubKey, payConfig.JDPayDESKey, req); // System.Diagnostics.Debug.WriteLine("异步通知订单号:" + anyResponse.tradeNum + ",状态:" + anyResponse.status); Tolog("异步通知订单号:" + anyResponse.tradeNum + ",状态:" + anyResponse.status); string orderId = anyResponse.tradeNum; OrderPay orderInfo = bllOrder.GetOrderPay(orderId, payType: 2); if (orderInfo == null) { //context.Response.Write("订单未找到"); context.Response.StatusCode = 500; context.Response.Write(failStr); return; } if (orderInfo.Status.Equals(1)) { //Tolog("已支付"); // context.Response.Write("订单已支付"); context.Response.StatusCode = 200; context.Response.Write(successStr); return; } if (anyResponse.status == "2") { //京东支付未返回流水号 bool result = false; Alipay.ShMemberNotifyUrl shNotify = new Alipay.ShMemberNotifyUrl(); if (orderInfo.Type == "4") { result = shNotify.PayRecharge(orderInfo, ""); } else if (orderInfo.Type == "5") { result = shNotify.PayRegister(orderInfo, ""); } else if (orderInfo.Type == "6") { result = shNotify.PayUpgrade(orderInfo, ""); } if (result) { context.Response.StatusCode = 200; context.Response.Write(successStr); Tolog("支付成功" + orderInfo.OrderId); return; } else { context.Response.StatusCode = 500; context.Response.Write(failStr); Tolog("支付失败"); return; } } else { context.Response.StatusCode = 500; context.Response.Write(failStr); return; } } catch (Exception ex) { //error = "fail"; Tolog("京东支付异常:" + ex.ToString()); } context.Response.ContentType = "text/plain"; context.Response.StatusCode = 500; context.Response.Write(failStr); }