コード例 #1
0
    /// <summary>
    /// 根据充值类型获取充值数据列表
    /// </summary>
    /// <param name="rechargeType"></param>
    /// <returns></returns>
    public List <uint> GetRechargeIDsByType(RechargeType rechargeType)
    {
        List <uint> rechargeIDs = null;
        List <table.RechargeDataBase> rechargeDatas = GameTableManager.Instance.GetTableList <table.RechargeDataBase>();

        if (null != rechargeDatas)
        {
            table.RechargeDataBase tempDB = null;
            uint rechargeuIntType         = (uint)rechargeType;
            uint payChannelType           = (uint)PayChannelType.PCT_General;
            for (int i = 0, max = rechargeDatas.Count; i < max; i++)
            {
                tempDB = rechargeDatas[i];
                if ((tempDB.rechargeType == rechargeuIntType) &&
                    ((tempDB.type == m_curPayChannelType) || (tempDB.type == payChannelType)))
                {
                    if (null == rechargeIDs)
                    {
                        rechargeIDs = new List <uint>();
                    }

                    if (!rechargeIDs.Contains(tempDB.dwID))
                    {
                        rechargeIDs.Add(tempDB.dwID);
                    }
                }
            }
        }
        return(rechargeIDs);
    }
コード例 #2
0
 public void OnClickYuEBao()
 {
     if (_rechargeTo == RechargeType.Balance)
     {
         _rechargeTo = RechargeType.YuEBao;
         _balanceSelectObj.SetActive(false);
         _yuEBaoSelectObj.SetActive(true);
     }
 }
コード例 #3
0
        public RechargeType GetRechargeTypeByCode(string code)
        {
            DynamicParameters paras = new DynamicParameters();

            paras.Add("@code", code, System.Data.DbType.String);
            RechargeType task = DapperSqlHelper.FindOne <RechargeType>("select * from [dbo].[RechargeType] where RechargeTypeCode=@code and Status=1", paras, false);

            return(task);
        }
コード例 #4
0
 public ActionResult Edit([Bind(Include = "RechargeTypeId,RechargeTypeName,RechargeTypeDescription")] RechargeType rechargeType)
 {
     if (ModelState.IsValid)
     {
         db.Entry(rechargeType).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(rechargeType));
 }
コード例 #5
0
        public ActionResult Create([Bind(Include = "RechargeTypeId,RechargeTypeName,RechargeTypeDescription")] RechargeType rechargeType)
        {
            if (ModelState.IsValid)
            {
                db.RechargeTypes.Add(rechargeType);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(rechargeType));
        }
コード例 #6
0
        public ActionResult DeleteConfirmed(int id)
        {
            if (db.StationPosts.Where(p => p.RechargeTypeId == id).Any())
            {
                return(RedirectToAction("Index"));
            }

            RechargeType rechargeType = db.RechargeTypes.Find(id);

            db.RechargeTypes.Remove(rechargeType);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #7
0
        // GET: RechargeTypes/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RechargeType rechargeType = db.RechargeTypes.Find(id);

            if (rechargeType == null)
            {
                return(HttpNotFound());
            }
            return(View(rechargeType));
        }
コード例 #8
0
        // GET: RechargeTypes/Delete/5
        public ActionResult Delete(int?id)
        {
            if (db.StationPosts.Where(p => p.RechargeTypeId == id).Any())
            {
                return(RedirectToAction("Index"));
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RechargeType rechargeType = db.RechargeTypes.Find(id);

            if (rechargeType == null)
            {
                return(HttpNotFound());
            }
            return(View(rechargeType));
        }
コード例 #9
0
        public static RechargeTransaction GetTransaction(VendRequest request, RechargeType type, string serviceCode)
        {
            if (request == null)
            {
                return(null);
            }

            RechargeTransaction transaction = new RechargeTransaction
            {
                Amount        = request.Amount,
                DealerCode    = request.DealerCode,
                PhoneNumber   = request.PhoneNumber,
                RechargeType  = type,
                RequestType   = RequestType.Request,
                ServiceCode   = serviceCode,
                Status        = TransactionStatus.INITIATED,
                TransactionId = Utility.GetRequestId(),
                TransDate     = DateTime.Now
            };

            return(transaction);
        }
コード例 #10
0
 /// <summary>
 /// 充值
 /// </summary>
 public ConfirmPaymentContext(RechargeType rechargeType, double amount) : base(UIType.ConfirmPayment)
 {
     this.rechargeType = rechargeType;
     this.amount       = amount;
     spendType         = SpendType.ToSelfAssets;
 }
コード例 #11
0
 public override void Init()
 {
     base.Init();
     _rechargeTo = RechargeType.Balance;
 }
コード例 #12
0
        public static RechargeTransaction GetTransaction(CreditSwitchRespose resp, CreditSwitchRequest req, RechargeType type)
        {
            if (resp == null)
            {
                return(null);
            }

            RechargeTransaction transaction = new RechargeTransaction
            {
                Amount              = Convert.ToDouble(resp.Amount == 0 ? req.Amount : resp.Amount),
                ResponseCode        = resp.StatusCode,
                ResponseDescription = resp.StatusDescription,
                TransactionId       = String.IsNullOrWhiteSpace(resp.MReference) ? req.RequestId : resp.MReference,
                Reference           = resp.TranxReference,
                PhoneNumber         = String.IsNullOrWhiteSpace(resp.Recipient) ? req.Recipient : resp.Recipient,
                ConfirmCode         = resp.ConfirmCode,
                TransDate           = resp.TranxDate,
                RechargeType        = type,
                RequestType         = RequestType.Response,
                Status              = resp.StatusCode == "00" ? TransactionStatus.SUCCESSFUL : TransactionStatus.FAILED
            };

            return(transaction);
        }
コード例 #13
0
 public ActionResult AliPayCreateSignStr(Enums.Enums.OrderType body, RechargeType type, string userID)
 {
     try
     {
         if (!db.tb_userinfos.Any(s => s.UserID == userID))
         {
             return(Json(Comm.ToJsonResult("Error", "用户不存在"), JsonRequestBehavior.AllowGet));
         }
         if (body != Enums.Enums.OrderType.Recharge && body != Enums.Enums.OrderType.OrderPay)
         {
             return(Json(Comm.ToJsonResult("Error", "请求参数错误"), JsonRequestBehavior.AllowGet));
         }
         if (type != Enums.Enums.RechargeType.Fifty && type != Enums.Enums.RechargeType.FiveHundred && type != Enums.Enums.RechargeType.Hundred && type != Enums.Enums.RechargeType.Ten && type != Enums.Enums.RechargeType.Thirty && type != Enums.Enums.RechargeType.TwoHundred)
         {
             return(Json(Comm.ToJsonResult("Error", "请求参数错误"), JsonRequestBehavior.AllowGet));
         }
         string     appid             = AliPayConfig.appid;                //appid
         string     app_private_key   = AliPayConfig.app_private_key;      //私钥
         string     alipay_public_key = AliPayConfig.app_public_key;       //公钥
         string     charset           = "utf-8";
         string     outtradeno        = AliPayConfig.GenerateOutTradeNo(); //订单号
         string     notifyurl         = AliPayConfig.notifyurl;            //回调通知页面地址
         IAopClient client            = new DefaultAopClient("https://openapi.alipay.com/gateway.do", appid, app_private_key.Trim(), "json", "1.0", "RSA2", alipay_public_key.Trim(), charset, false);
         //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称如:alipay.trade.app.pay
         AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
         //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
         AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
         model.Body           = ((Enums.Enums.OrderType)body).GetDisplayName();
         model.Subject        = "充值";
         model.TotalAmount    = "0.1"; //type.GetDisplayName();
         model.ProductCode    = AliPayConfig.productcode;
         model.OutTradeNo     = outtradeno;
         model.TimeoutExpress = "30m";
         request.SetBizModel(model);
         request.SetNotifyUrl(notifyurl);
         //这里和普通的接口调用不同,使用的是sdkExecute
         AlipayTradeAppPayResponse response = client.SdkExecute(request);
         //HttpUtility.HtmlEncode是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
         //Response.Write(HttpUtility.HtmlEncode(response.Body));
         string resultcode = HttpUtility.HtmlEncode(response.Body);
         if (!string.IsNullOrWhiteSpace(resultcode))
         {
             //保存下单信息到数据库
             PayOrder paymodel = new PayOrder();
             paymodel.OrderState           = Enums.Enums.OrderState.UnHandle;
             paymodel.out_trade_no         = outtradeno;
             paymodel.Paynoncestr          = string.Empty;
             paymodel.PayPrepay_id         = outtradeno;
             paymodel.settlement_total_fee = Convert.ToInt32(type.GetDisplayName());
             paymodel.CreateTime           = DateTime.Now;
             paymodel.Sign      = resultcode;
             paymodel.total_fee = Convert.ToInt32(type.GetDisplayName());
             paymodel.User_ID   = userID;
             paymodel.OrderType = body;
             db.PayOrders.Add(paymodel);
             int resultrow = db.SaveChanges();
             if (resultrow > 0)
             {
                 string tempresult = resultcode.Replace("amp;", "");
                 var    returndata = new
                 {
                     result    = tempresult,
                     prepay_id = outtradeno
                 };
                 return(Json(Comm.ToJsonResult("Success", "成功", returndata), JsonRequestBehavior.AllowGet));
             }
             else
             {
                 return(Json(Comm.ToJsonResult("Error", "下单失败"), JsonRequestBehavior.AllowGet));
             }
         }
         else
         {
             return(Json(Comm.ToJsonResult("Error", "下单失败"), JsonRequestBehavior.AllowGet));
         }
     }
     catch (Exception ex)
     {
         return(Json(Comm.ToJsonResult("Error", ex.Message), JsonRequestBehavior.AllowGet));
     }
 }
コード例 #14
0
        public ActionResult ToOrder(Enums.Enums.OrderType body, RechargeType type, string userID)
        {
            if (!db.tb_userinfos.Any(s => s.UserID == userID))
            {
                return(Json(Comm.ToJsonResult("Error", "用户不存在"), JsonRequestBehavior.AllowGet));
            }
            if (body != Enums.Enums.OrderType.Recharge && body != Enums.Enums.OrderType.OrderPay)
            {
                return(Json(Comm.ToJsonResult("Error", "请求参数错误"), JsonRequestBehavior.AllowGet));
            }
            if (type != Enums.Enums.RechargeType.Fifty && type != Enums.Enums.RechargeType.FiveHundred && type != Enums.Enums.RechargeType.Hundred && type != Enums.Enums.RechargeType.Ten && type != Enums.Enums.RechargeType.Thirty && type != Enums.Enums.RechargeType.TwoHundred)
            {
                return(Json(Comm.ToJsonResult("Error", "请求参数错误"), JsonRequestBehavior.AllowGet));
            }
            WxPayData parmdata     = new WxPayData();
            string    out_trade_no = WxPayApi.GenerateOutTradeNo();

            parmdata.SetValue("body", ((Enums.Enums.OrderType)body).GetDisplayName());                //商品描述
            parmdata.SetValue("attach", "逸趣网络科技有限公司");                                                //附加数据
            parmdata.SetValue("out_trade_no", out_trade_no);                                          //商户订单号
            parmdata.SetValue("total_fee", Convert.ToInt32(type.GetDisplayName()));                   //总金额 * 100
            parmdata.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));                 //交易起始时间
            parmdata.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss")); //交易结束时间
            parmdata.SetValue("goods_tag", "");                                                       //商品标记
            parmdata.SetValue("trade_type", "APP");                                                   //交易类型
            //parmdata.SetValue("product_id", productid);//商品ID

            WxPayData resultdata = WxPayApi.UnifiedOrder(parmdata);
            string    resultcode = resultdata.GetValue("return_code").ToString();

            if (resultcode.Equals("SUCCESS"))
            {
                string signstr     = resultdata.GetValue("sign").ToString();
                string noncestr    = WxPayApi.GenerateNonceStr();
                string result_code = resultdata.GetValue("result_code").ToString();
                string prepay_id   = string.Empty;
                if (result_code.Equals("SUCCESS"))
                {
                    prepay_id = resultdata.GetValue("prepay_id").ToString();
                    //var stringA = $"appid={WxPayConfig.APPID}&noncestr={noncestr}&package=Sign=WXPay&partnerid={WxPayConfig.MCHID}&prepayid={prepay_id}&timestamp={Unite.GenerateTimeStamp(DateTime.Now)}&key={WxPayConfig.KEY}";
                    //var sign = Unite.ToMD5New(stringA).ToUpper();

                    //保存下单信息到数据库
                    PayOrder model = new PayOrder();
                    model.OrderState           = Enums.Enums.OrderState.UnHandle;
                    model.out_trade_no         = out_trade_no;
                    model.Paynoncestr          = noncestr;
                    model.PayPrepay_id         = prepay_id;
                    model.settlement_total_fee = Convert.ToInt32(type.GetDisplayName());
                    model.CreateTime           = DateTime.Now;
                    model.Sign      = signstr;
                    model.total_fee = Convert.ToInt32(type.GetDisplayName());
                    model.User_ID   = userID;
                    model.OrderType = body;
                    db.PayOrders.Add(model);
                    int resultrow = db.SaveChanges();
                    //保存订单数据结果
                    if (resultrow > 0)
                    {
                        System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
                        long            ts        = (long)(DateTime.Now - startTime).TotalSeconds;                         // 相差秒数

                        System.Text.StringBuilder paySignpar = new System.Text.StringBuilder();
                        paySignpar.Append($"appid={resultdata.GetValue("appid")?.ToString()}");
                        paySignpar.Append($"&noncestr={noncestr}");
                        paySignpar.Append($"&package=Sign=WXPay&partnerid={WxPayConfig.MCHID}");
                        paySignpar.Append($"&prepayid={resultdata.GetValue("prepay_id")?.ToString()}");
                        //paySignpar.Append($"&signType=MD5");
                        paySignpar.Append($"&timestamp={ts.ToString()}");
                        paySignpar.Append($"&key={WxPayConfig.KEY ?? string.Empty}");
                        string strPaySignpar = paySignpar.ToString();

                        var sign = Unite.GetMd5Hash(strPaySignpar).ToUpper();
                        //dynamic retModel = new
                        //{
                        //    timeStamp = ts.ToString(),
                        //    nonceStr = resultdata.GetValue("nonce_str")?.ToString(),
                        //    package = "prepay_id=" + resultdata.GetValue("prepay_id")?.ToString(),
                        //    signType = "MD5",
                        //    paySign = sign,
                        //    total_fee = model.total_fee / 100m,
                        //};

                        var returndata = new
                        {
                            result    = resultcode,
                            timestamp = ts.ToString(),
                            prepay_id = prepay_id,
                            noncestr  = noncestr,
                            sign      = sign
                        };
                        return(Json(Comm.ToJsonResult("Success", "成功", returndata), JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        return(Json(Comm.ToJsonResult("Error", "下单失败"), JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    return(Json(Comm.ToJsonResult("Error", "下单失败"), JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                return(Json(Comm.ToJsonResult("Error", "下单失败"), JsonRequestBehavior.AllowGet));
            }
        }