/// <summary>
        /// 发送普通心跳
        /// </summary>
        public void SendCommonHeartbeat()
        {
            try
            {
                var deviceList = spServ.GetList(PlatformType.Meituan);
                var devices    = (from d in deviceList
                                  select new
                {
                    ePoiId = d.ShopId.ToString(),
                    posId = d.PrinterCode
                }).ToList();

                var parms = new SortedDictionary <string, object>();
                parms.Add("developerId", ConfigUtil.MeiDeveloperId);
                parms.Add("time", TimeUtil.SecondTicks_1970);
                parms.Add("list", devices);

                var datastr = JsonUtil.ToJson(parms);
                var data    = new SortedDictionary <string, object>();
                data.Add("data", datastr);

                var sign   = SignUtil.GetMeituanSign(data, ConfigUtil.MeiSignKey);
                var url    = MeituanConsts.COMMON_HEARBEAT_API;
                var pars   = string.Format("data={0}&sign={1}", datastr, sign);
                var result = HttpRequestUtil.HttpPost(url, pars);

                LogUtil.Info(string.Format("发送普通心跳,返回:{0}", result));
            }
            catch (Exception ex)
            {
                LogUtil.Error(string.Format("发送普通心跳失败,参考信息:{0}", ex.Message));
            }
        }
Exemplo n.º 2
0
    public static IObservable <string> GetWithSign(string url, Dictionary <string, object> param, bool showToast = true)
    {
        if (token.IsNullOrEmpty())
        {
            token = PlayerPrefsUtil.GetToken();
        }

        if (!token.IsNullOrEmpty())
        {
            param.Add("token", token);
        }

        var methodParams = SignUtil.getMethodParamStr(param);
        var sign         = SignUtil.getSign(param);

        url = url + "?" + methodParams + "&sign=" + sign + "&appid=" + AppConst.APPID;
        return(ObservableWWW.Get(url).DoOnError(e =>
        {
            LoadingManager.GetInstance().DismissLoading();
            if (showToast)
            {
                if (e is HttpException)
                {
                }
                else if (e is WWWErrorException)
                {
                    ToastManager.GetInstance().CreatToast("网络连接失败,请检查网络连接");
                }
                else
                {
                    ToastManager.GetInstance().CreatToast(e.Message);
                }
            }
        }));
    }
        /// <summary>
        /// 确认订单
        /// </summary>
        /// <param name="orderId"></param>
        /// <param name="appAuthToken"></param>
        /// <returns></returns>
        public string ConfirmOrder(long orderId, string appAuthToken)
        {
            var errMsg = string.Empty;
            var parms  = new SortedDictionary <string, object>();

            parms.Add("orderId", orderId);
            parms.Add("appAuthToken", appAuthToken);
            parms.Add("charset", "utf-8");
            parms.Add("timestamp", TimeUtil.SecondTicks_1970);
            var sign = SignUtil.GetMeituanSign(parms, ConfigUtil.MeiSignKey);

            var parmStr = new StringBuilder();
            var url     = MeituanConsts.CONFIRM_ORDER_API;

            foreach (var parm in parms)
            {
                parmStr.AppendFormat("{0}={1}&", parm.Key, parm.Value);
            }
            var pars = string.Format("{0}sign={1}", parmStr.ToString(), sign);

            try
            {
                var result = HttpRequestUtil.HttpPost(url, pars);
                LogUtil.Info(string.Format("调用确认订单接口,返回:{0}", result));
                if (result.ToUpper().IndexOf("\"" + MeituanConsts.API_RETURN_OK + "\"") <= -1)
                {
                    errMsg = result;
                }
            }
            catch (Exception ex)
            {
                errMsg = ex.InnerException.ToString();
            }
            return(errMsg);
        }
Exemplo n.º 4
0
        public IActionResult RemitRequestSubmit(string mer_no, string mer_remit_no, string apply_date, string bank_code, string province, string city, string card, string name, string amount, string remark)
        {
            string card_and_name_str = card + "|" + name;
            string card_and_name     = AesUtil.AESEncrypt(card_and_name_str, ConstantUtil.REMIT_KEY);
            string sign_type         = ConstantUtil.SIGN_TYPE;

            Dictionary <string, string> dic = new Dictionary <string, string>();

            dic.Add("card_and_name", card_and_name);
            dic.Add("mer_no", mer_no);
            dic.Add("mer_remit_no", mer_remit_no);
            dic.Add("apply_date", apply_date);
            dic.Add("bank_code", bank_code);
            dic.Add("province", province);
            dic.Add("city", city);
            dic.Add("amount", amount);
            dic.Add("remark", remark);
            String signStr = SignUtil.sortData(dic);
            String sign    = MD5.Md5Hash(signStr, ConstantUtil.REMIT_KEY);

            dic.Add("sign_type", sign_type);
            dic.Add("sign", sign);
            dic["card_and_name"] = System.Web.HttpUtility.UrlEncode(card_and_name);
            String result           = HttpClientUtil.Post(ConstantUtil.REMIT_URL, dic);
            var    obj              = JsonConvert.DeserializeObject <dynamic>(result);
            string ret_sign_type    = obj.sign_type;
            string ret_sign         = obj.sign;
            string ret_mer_no       = obj.mer_no;
            string ret_auth_result  = obj.auth_result;
            string ret_error_msg    = obj.error_msg;
            string ret_mer_remit_no = obj.ret_mer_remit_no;
            string ret_trade_result = obj.ret_trade_result;
            string ret_amount       = obj.amount;
            string ret_apply_date   = obj.apply_date;

            Dictionary <string, string> dic1 = new Dictionary <string, string>();

            SignUtil.putIfNotNull(dic1, "mer_no", ret_mer_no);
            SignUtil.putIfNotNull(dic1, "auth_result", ret_auth_result);
            SignUtil.putIfNotNull(dic1, "error_msg", ret_error_msg);
            SignUtil.putIfNotNull(dic1, "ret_mer_remit_no", ret_mer_remit_no);
            SignUtil.putIfNotNull(dic1, "ret_trade_result", ret_trade_result);
            SignUtil.putIfNotNull(dic1, "ret_amount", ret_amount);
            SignUtil.putIfNotNull(dic1, "apply_date", ret_apply_date);

            string retSignStr = SignUtil.sortData(dic1);
            string retSign    = MD5.Md5Hash(retSignStr, ConstantUtil.REMIT_KEY);

            if (!ConstantUtil.SIGN_TYPE.Equals(ret_sign_type) || !retSign.Equals(ret_sign))
            {
                Console.WriteLine("签名验证失败");
            }
            else
            {
                Console.WriteLine("签名验证成功");
            }


            return(View((object)result));
        }
Exemplo n.º 5
0
        public ActionResult Login(LoginModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                ErrorNotification("验证码错误");
                return(View());
            }
            var passWod  = SignUtil.MD5Sign(model.PassWord);
            var customer = _customerService.GetCustomer(model.Email, passWod);

            if (customer == null)
            {
                ErrorNotification("用户名或密码错误");
            }
            else
            {
                _workContext.CurrentCustomer = customer;
                if (!string.IsNullOrEmpty(returnUrl))
                {
                    return(Redirect(returnUrl));
                }

                return(RedirectToAction("Index", "Home"));
            }
            return(View());
        }
Exemplo n.º 6
0
        /// <summary>
        /// Zeus支付接口
        /// </summary>
        /// <param name="url">接口Url地址</param>
        /// <param name="req">支付接口参数</param>
        /// <returns>接口返回对象</returns>
        public static LoginResult ZeusPay(string url, PayRequest req)
        {
            if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["code"]) || string.IsNullOrEmpty(ConfigurationManager.AppSettings["appkey"]) || string.IsNullOrEmpty(ConfigurationManager.AppSettings["signkey"]) || string.IsNullOrEmpty(ConfigurationManager.AppSettings["payee"]))
            {
                throw new Exception();
            }
            var request = new PayRequest
            {
                code           = ConfigurationManager.AppSettings["code"], //
                appkey         = ConfigurationManager.AppSettings["appkey"],
                identifier     = req.identifier,
                cur            = req.cur,
                transaction    = req.transaction,
                amt            = req.amt,
                biz_identifier = req.biz_identifier,
                callback       = req.callback,
                desc           = req.desc,
                expiry         = req.expiry,
                payee          = long.Parse(ConfigurationManager.AppSettings["payee"]),
                token          = req.token
            };
            var str = SignUtil.GetPropertyValueWithOrder <LoginRequest>(request);

            str         += "&key=" + ConfigurationManager.AppSettings["signkey"];
            request.sign = SignUtil.GetMD5(str);
            var json = JsonConvert.SerializeObject(request);

            str = HttpUtil.Post(url, json);

            return(str == null ? null : JsonConvert.DeserializeObject <LoginResult>(str));
        }
Exemplo n.º 7
0
        private string getSign(Dictionary <string, string> dic)
        {
            string signStr = SignUtil.sortData(dic);
            string result  = MD5.Md5Hash(signStr, ConstantUtil.PAY_KEY);

            return(result);
        }
        private static XmlDocument SignSamlRequest(AuthnRequestType request, string signatureNsPrefix, bool includePublicKey, string sslCertificateThumbprint)
        {
            X509Certificate2 cert = SignUtil.LoadCertificate(StoreName.My, StoreLocation.LocalMachine, sslCertificateThumbprint);

            XmlSerializerNamespaces ns = new XmlSerializerNamespaces();

            ns.Add("samlp", _samlProtocolNs);
            if (!string.IsNullOrEmpty(signatureNsPrefix))
            {
                ns.Add(signatureNsPrefix, SignUtil.SignatureNamespace);
            }
            ns.Add("egovbga", _eauthExtNs);
            ns.Add("saml", _samlAssertionNs);
            XmlDocument doc = request.ToXmlDocument(ns);

            XmlElement signatureElement = SignUtil.Sign(doc, cert, signatureNsPrefix, includePublicKey);

            // Подписът вече е добавен в XML документа и по подразбиране е в края му. Според "saml-schema-protocol-2.0.xsd" обаче,
            // подписът трябва да бъде между елементите Issuer и Extensions. InsertAfter() го маха от старото място и го закача на новото.
            XmlNode issuerElement = doc.GetElementsByTagName(nameof(request.Issuer), _samlAssertionNs)[0];

            doc.DocumentElement.InsertAfter(signatureElement, issuerElement);

            return(doc);
        }
        /// <summary>
        /// 查询美团门店信息
        /// </summary>
        /// <returns></returns>
        public MeituanShopModel GetMeituanShop(string appAuthToken, string ePoiIds)
        {
            MeituanShopModel model = null;
            var parms = new SortedDictionary <string, object>();

            parms.Add("appAuthToken", appAuthToken);
            parms.Add("charset", "utf-8");
            parms.Add("timestamp", TimeUtil.SecondTicks_1970);
            parms.Add("ePoiIds", ePoiIds);
            var sign = SignUtil.GetMeituanSign(parms, ConfigUtil.MeiSignKey);

            var parmStr = new StringBuilder();
            var url     = MeituanConsts.QUERY_SHOP_INFO_API;

            foreach (var parm in parms)
            {
                parmStr.AppendFormat("{0}={1}&", parm.Key, parm.Value);
            }
            var pars = string.Format("{0}sign={1}", parmStr.ToString(), sign);

            try
            {
                var result = HttpRequestUtil.HttpGet(url, pars);
                LogUtil.Info(string.Format("调用查询美团门店接口,返回:{0}", result));
                var list = JsonUtil.ToObject <List <MeituanShopModel> >(result.Replace("{\"data\":", string.Empty).TrimEnd('}'));
                model = (list != null && list.Count > 0) ? list.FirstOrDefault() : null;
            }
            catch (Exception ex)
            {
                LogUtil.Error(string.Format("调用查询美团门店接口失败,参考信息:{0}", ex.InnerException.ToString()));
            }
            return(model);
        }
Exemplo n.º 10
0
        public EAuthRequestViewModel CreateRequestAsync(string requestUrl, string callbackUrl, string serviceOid, string providerOid,
                                                        string signatureNsPrefix, bool includePublicKey, string sslCertificateThumbprint)
        {
            XmlDocument doc = EAuthPersonUtil.CreateSamlRequest(
                _eAuthUrl, ThisSystem.Oid, ThisSystem.Name, ThisSystem.Name, requestUrl, callbackUrl, serviceOid, providerOid,
                signatureNsPrefix, includePublicKey, sslCertificateThumbprint, out string requestId);

            string samlRequest = doc.OuterXml;
            string relayState  = null;

            SignUtil.Status signatureStatus = SignUtil.ValidateText(samlRequest);

            return(new EAuthRequestViewModel
            {
                RequestId = requestId,
                // Полета, необходими за скритата форма, която се POST-ва към еАвт.
                EAuthUrl = _eAuthUrl,
                SAMLRequest = EncodeSamlParameter(samlRequest),
                RelayState = EncodeSamlParameter(relayState),
                // Допълнителни полета за потребителя и за debug цели.
                SamlRequestBeautified = XmlUtil.BeautifyXml(samlRequest),
                SamlRequestDecoded = samlRequest,
                RelayStateDecoded = relayState,
                SignatureStatusName = SignUtil.FormatStatus(signatureStatus)
            });
        }
Exemplo n.º 11
0
        public static Boolean VerifySign(HttpResponseMessage respMsg, String respString, out String errorMessage)
        {
            errorMessage = null;
            if (!respMsg.Headers.TryGetValues("X-99Bill-Signature", out IEnumerable <String> respSign))
            {
                errorMessage = "响应头中无\"X-99Bill-Signature\"字段";
                return(false);
            }

            String signString = respSign.FirstOrDefault();

            if (signString.IsNullOrWhiteSpace())
            {
                errorMessage = "响应头中\"X-99Bill-Signature\"字段的值为空";
                return(false);
            }

            var verifyResult = SignUtil.VerifySign(signString, respString, KeyConfig.Bill99_HAT_PublicKey, "RSA");

            if (!verifyResult.Success)
            {
                errorMessage = verifyResult.ErrorMessage;
            }
            return(verifyResult.Success && verifyResult.Value);
        }
        //public static void Main(string[] args)
        //{
        //    //参数
        //    Dictionary<string, string> reqParams = new Dictionary<string, string>();
        //    reqParams.Add("stoneIds", "5d82faf131d5a71d1e379216,5d82ea3b31d5a71d1e35d16a");
        //    reqParams.Add("brandName","品牌商test");
        //    reqParams.Add("storeName","店铺名称test");
        //    reqParams.Add("storeAddr","店铺地址test");
        //    reqParams.Add("storeType","2");//直营(1)加盟(2)
        //    reqParams.Add("customName","客户姓名test");
        //    reqParams.Add("brandOrder","NO201909010001");
        //    reqParams.Add("deliverDate", "2019-09-01");
        //    reqParams.Add("contactName", "某某某");
        //    reqParams.Add("contactPhone", "13666666666");
        //
        //    Submit(Configuration.API_KEY, Configuration.API_SECRET, reqParams);
        //}

        public static void Submit(string apiKey, string apiSecret, Dictionary <string, string> param)
        {
            //API Secret 进行SHA1加密
            string secret = SignUtil.SHA1_Encrypt(apiSecret);
            //API请求方式(大写)
            string reqMethod = "POST";
            //API请求地址(domain + uri)
            string reqUrl = Configuration.API_ENDPOINT + Configuration.URI_STOCK_SUBMIT;
            //POST参数key排序及URL参数化
            Dictionary <string, string> reqParamsAsc = SignUtil.AsciiDictionary(param);
            //URL参数化
            string postParams = SignUtil.ToRequestParam(reqParamsAsc);
            //unix时间戳(13位)
            string timestamp = SignUtil.GetTimeStamp();
            //一次性随机字符串
            string nonce = System.Guid.NewGuid().ToString("N");
            //API请求Headers
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("X-CA-ACCESSKEY", apiKey);
            headers.Add("X-CA-TIMESTAMP", timestamp);
            headers.Add("X-CA-NONCE", nonce);
            //API请求签名
            string signStr = SignUtil.Sign(reqMethod + reqUrl + nonce + timestamp + postParams, secret);

            Console.WriteLine("signStr:" + signStr);
            headers.Add("X-CA-SIGNATURE", signStr);
            //post请求并调用
            string result = HttpUtil.Post(reqUrl, param, headers);

            Console.WriteLine("result:" + result);
            Console.ReadKey();
        }
Exemplo n.º 13
0
        private Task <string> CreateRequestAsync(IModel model)
        {
            var dic = new Dictionary <string, object>();

            var baseModel = model as BaseModel <TBaseContent, TBaseHead>;

            var props = baseModel.content.GetType().GetProperties();

            foreach (var prop in props)
            {
                var name  = prop.Name;
                var value = prop.GetValue(model);
                dic[name] = value;
            }

            props = baseModel.head.GetType().GetProperties();
            foreach (var prop in props)
            {
                var name  = prop.Name;
                var value = prop.GetValue(model);
                dic[name] = value;
            }

            var postData = SignUtil.SetSign <TBaseContent, TBaseHead>(model, dic, MD5Key);

            Console.WriteLine($"请求报文:{postData}");

            var result = WebRequestUtil.PostJsonAsync(Url, postData);

            Console.WriteLine($"接收报文:{result}");

            return(result);
        }
Exemplo n.º 14
0
 public bool AddOrUpdate(CustomerModel model)
 {
     if (model.Id > 0)
     {
         var entity = _customerRepository.Table.FirstOrDefault(x => x.Id == model.Id);
         entity.Name       = model.Name;
         entity.ModifyTime = DateTime.Now;
         entity.Active     = model.Active;
         return(_customerRepository.Update(entity) > 0);
     }
     else
     {
         var entity = new Customer
         {
             Name        = model.Name,
             Email       = model.Email,
             CreatedTime = DateTime.Now,
             Active      = model.Active,
             Type        = model.Type,
             ParentId    = model.ParentId,
             PassWord    = SignUtil.MD5Sign(model.PassWord)
         };
         return(_customerRepository.Insert(entity) > 0);
     }
 }
Exemplo n.º 15
0
        /** ***** **/

        /** 扩展字段-暂未启用
         * private long storeId;
         * // 数据拥有者ID
         * private long ownerId;
         * // 签约人列表,逗号分隔
         * private string signatoryNames;
         * // 存储来源,本地上传,API,合同
         * private string source;
         * // 文件类型
         * private string fileType;
         * // 合同类型
         * private string contractStatus;
         * // 数据隶属通道
         * private string channel;
         * // 安全存储数据
         * private string storeData;
         * // 标签
         * private string tags;
         * // 商户名称
         * private string merchantName;
         * // 数据拥有者名字
         * private string ownerName;
         * // key
         * private string appKey;
         * // secret
         * private string appSecret;
         * //  原始文件名
         * private string fileName;
         * // 存储文件路径
         * private string filePath;
         * // 文件url地址
         * private string fileUrl;
         * // pdf快照图片路径
         * private string snapshotPath;
         * // pdf快照图片URL
         * private string snapshotUrl;
         * // hash值(区块链返回)
         * private string hashCode;
         * private string isBlocked;
         * // 数据签名
         * private string sign;
         **/

        public DataStore(string storeName, string transAbs, string isPublic)
        {
            this.userBizNumber = SignUtil.GainNo();
            this.storeName     = storeName;
            this.transAbs      = transAbs;
            this.isPublic      = isPublic;
        }
Exemplo n.º 16
0
        public object GetMeituanGetUrl()
        {
            //1.校验请求参数
            var errMsg = string.Empty;
            var parms  = new SortedDictionary <string, object>();

            parms.Add("appAuthToken", "5eb0b7509b2148e2a5ba4a4c671e9750208bb59ef8e3c7f4349cb88aa8d63384224cc76585b83f9f112b3480b715fd52");
            parms.Add("charset", "utf-8");
            parms.Add("timestamp", TimeUtil.SecondTicks_1970);
            //parms.Add("ePoiId", "10004");
            var sign = SignUtil.GetMeituanSign(parms, ConfigUtil.MeiSignKey);

            var parmStr = new StringBuilder();
            var url     = "http://api.open.cater.meituan.com/waimai/dish/queryCatList";//"http://api.open.cater.meituan.com/waimai/dish/queryBaseListByEPoiId";

            foreach (var parm in parms)
            {
                parmStr.AppendFormat("{0}={1}&", parm.Key, parm.Value);
            }
            var pars = string.Format("{0}sign={1}", parmStr.ToString(), sign);

            try
            {
                var result = HttpRequestUtil.HttpGet(url, pars);
                LogUtil.Info(string.Format("调用接口,返回:{0}", result));

                errMsg = result;
            }
            catch (Exception ex)
            {
                errMsg = ex.InnerException.ToString();
            }
            return(errMsg);
        }
        /// <summary>
        /// 查询订单
        /// </summary>
        /// <param name="orderId"></param>
        /// <param name="appAuthToken"></param>
        /// <returns></returns>
        public MeituanOrderModel QueryOrder(string orderId, string appAuthToken)
        {
            MeituanOrderModel orderModel = null;

            try
            {
                var parms = new SortedDictionary <string, object>();
                parms.Add("orderId", orderId);
                parms.Add("appAuthToken", appAuthToken);
                parms.Add("charset", "utf-8");
                parms.Add("timestamp", TimeUtil.SecondTicks_1970);
                var sign = SignUtil.GetMeituanSign(parms, ConfigUtil.MeiSignKey);

                var parmStr = new StringBuilder();
                var url     = MeituanConsts.QUERY_ORDER_BYID_API;
                foreach (var parm in parms)
                {
                    parmStr.AppendFormat("{0}={1}&", parm.Key, parm.Value);
                }
                var pars   = string.Format("{0}sign={1}", parmStr.ToString(), sign);
                var result = HttpRequestUtil.HttpPost(url, pars);
                LogUtil.Info(string.Format("调用查询订单接口,返回:{0}", result));
                var retValue = JsonUtil.ToObject <ApiDataQueryModel>(result);
                orderModel = JsonUtil.ToObject <MeituanOrderModel>(retValue.data.ToString());
            }
            catch (Exception ex)
            {
                var msg = string.Format("查询美团订单失败,订单Id:{0},访问令牌:{1},参考信息:{2}", orderId, appAuthToken, ex.InnerException);
                LogUtil.Error(msg);
            }
            return(orderModel);
        }
Exemplo n.º 18
0
    public static IObservable <string> PostWithSign(string url, Dictionary <string, object> param, bool showToast = true)
    {
        StringBuilder strParam  = new StringBuilder();
        var           formParam = new WWWForm();

        if (token.IsNullOrEmpty())
        {
            token = PlayerPrefsUtil.GetToken();
        }

        if (!token.IsNullOrEmpty())
        {
            param.Add("token", token);
        }

        if (param.Count > 0)
        {
            param.ForEach(pair =>
            {
                strParam.Append(pair.Key);
                strParam.Append(":");
                strParam.Append(pair.Value.ToString());
                strParam.Append("&");
                formParam.AddField(pair.Key, pair.Value.ToString());
            });
            string sign = SignUtil.getSign(param);
            formParam.AddField("sign", sign);
            formParam.AddField("appid", AppConst.APPID);
            strParam.Append("sign");
            strParam.Append(":");
            strParam.Append(sign);
            strParam.Append("&");
            strParam.Append("appid");
            strParam.Append(":");
            strParam.Append(AppConst.APPID);
        }
        Log.I("url==" + url);
        Log.I("formParam==" + strParam);
        return(ObservableWWW.Post(url, formParam).DoOnError(e =>
        {
            LoadingManager.GetInstance().DismissLoading();
            if (showToast)
            {
                if (e is HttpException)
                {
                    Log.E("e.Message: " + e.Message);
                }
                else if (e is WWWErrorException)
                {
                    ToastManager.GetInstance().CreatToast("网络连接失败,请检查网络连接");
                }
                else
                {
                    ToastManager.GetInstance().CreatToast(e.Message);
                }
            }
        }));
    }
Exemplo n.º 19
0
        public APIResultBase AddOrUpdate(HS_GameTable gameTable, GameStyleEnum GameStyle)
        {
            if (gameTable.CreateUserCode.IsNullOrEmpty() || gameTable.TableName.IsNullOrEmpty())
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误));
            }
            if (_repository.Get(c => (c.CreateUserCode == gameTable.CreateUserCode || c.PlayerUserCode == gameTable.CreateUserCode) && gameTable.ID < 1 && c.TableStatus == (int)TableStatusEnum.正常).Result.TotalItemsCount > 0)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.时只能创建或占用一个游戏房间));
            }
            if (gameTable.ID > 0)
            {
                //gameTable.AddTime = _repository.GetByKey(gameTable.ID).Result.AddTime;
                _repository.Update(gameTable);
                return(JsonModelResult.PackageSuccess(gameTable.ID.ToString()));
            }
            else
            {
                DateTime now = DateTime.Now;
                gameTable.PlayerUserCode = "";
                gameTable.TableCode      = SignUtil.CreateSign(UsersBll.Instance.GetUserByAdmin(gameTable.CreateUserCode).SecretCode + RandomUtil.CreateRandomStr(8) + now.Ticks);
                gameTable.AddTime        = DateTime.Now;
                using (FriendshipFirstContext context = new FriendshipFirstContext())
                {
                    gameTable.BankerCode = gameTable.CreateUserCode;
                    context.hs_gametable.Add(gameTable);
                    FF_Game game = new FF_Game();
                    game.AddTime          = now;
                    game.BankerCode       = gameTable.CreateUserCode;
                    game.GameStatus       = GameStyle == GameStyleEnum.庄家模式 ? (int)GameStatusEnum.初始化 : (int)GameStatusEnum.已开始;
                    game.CurrentRoundCode = SignUtil.CreateSign(gameTable.CreateUserCode + RandomUtil.CreateRandomStr(8) + game.AddTime.Ticks);
                    game.NextRoundCode    = SignUtil.CreateSign(gameTable.CreateUserCode + RandomUtil.CreateRandomStr(8) + game.AddTime.AddMinutes(5).Ticks);
                    game.GameCode         = gameTable.TableCode;
                    game.GameStyle        = (int)GameStyle;
                    context.ff_game.Add(game);

                    FF_GameRecord record = new FF_GameRecord
                    {
                        AddTime      = now,
                        BetMoney     = 0,
                        IsBanker     = true,
                        PlayerStatus = (int)PlayerStatusEnum.已下注,
                        RoundCode    = game.CurrentRoundCode,
                        UserCode     = game.BankerCode,
                        WinMoney     = 0,
                        Balance      = 0,
                        GameCode     = game.GameCode,
                        IsActivity   = false,
                        RoomIndex    = 0
                    };
                    context.ff_gamerecord.Add(record);

                    context.SaveChanges();
                }
                return(JsonModelResult.PackageSuccess <HS_GameTable>(gameTable));
            }
        }
Exemplo n.º 20
0
        //static string HttpPost(string url, Dictionary<string, string> headers, Dictionary<string, string> bodys, string appKey, string appSecret, int timeout, List<string> signHeaderPrefixList)
        //{
        //    Dictionary <string, string> formParam = new Dictionary<string, string>();
        //    headers = initialBasicHeader(headers, appKey, appSecret, "POST", url, formParam, signHeaderPrefixList);

        //    SimpleHttpClient httpClient("POST", url.c_str(), timeout);
        //    for (map<string, string>::iterator it = headers.begin(); it != headers.end(); it++)
        //    {
        //        httpClient.setHttpHeader(it->first, it->second);
        //    }
        //    httpClient.setHttpMultipartForm(bodys);
        //    httpClient.sendHttpRequest();
        //    return httpClient.getHttpResponseBody();
        //}

        //string HttpUtil::HttpPost(string url, map<string, string> headers, string body, string appKey, string appSecret, int timeout, list<string> signHeaderPrefixList)
        //{
        //    map<string, string> formParam;
        //    headers = initialBasicHeader(headers, appKey, appSecret, "POST", url, formParam, signHeaderPrefixList);

        //    SimpleHttpClient httpClient("POST", url.c_str(), timeout);
        //    for (map<string, string>::iterator it = headers.begin(); it != headers.end(); it++)
        //    {
        //        httpClient.setHttpHeader(it->first, it->second);
        //    }
        //    httpClient.setHttpContent(body);
        //    httpClient.sendHttpRequest();
        //    return httpClient.getHttpResponseBody();
        //}



        /// <summary>
        /// 初始化头部
        /// </summary>
        /// <param name="headers"></param>
        /// <param name="appKey"></param>
        /// <param name="appSecret"></param>
        /// <param name="method"></param>
        /// <param name="requestAddress"></param>
        /// <param name="formParam"></param>
        /// <param name="signHeaderPrefixList"></param>
        /// <returns></returns>
        static Dictionary <string, string> initialBasicHeader(Dictionary <string, string> headers, string appKey, string appSecret, string method, string requestAddress, Dictionary <string, string> formParam, List <string> signHeaderPrefixList)
        {
            headers.Add(X_CA_TIMESTAMP, DateTimeHelper.DateTimeToCTime(DateTime.Now).ToString());
            headers.Add(X_CA_NONCE, Guid.NewGuid().ToString());
            headers.Add(X_CA_KEY, appKey);
            headers.Add(X_CA_SIGNATURE, SignUtil.Sign(method, requestAddress, headers, formParam, appSecret, signHeaderPrefixList));

            return(headers);
        }
Exemplo n.º 21
0
        public static void AddSign(HttpClient client, String signContent)
        {
            var sign = SignUtil.MakeSign(signContent, KeyConfig.Bill99YZTHehuaPrivateKey, PrivateKeyFormat.PKCS8, "RSA");

            if (sign.Success)
            {
                client.DefaultRequestHeaders.Remove("X-99Bill-Signature");
                client.DefaultRequestHeaders.Add("X-99Bill-Signature", sign.Value);
            }
        }
        public T Request <T>(object requestContent, string ak, string sk, string region, string projectId, InterfaceType interfaceName = InterfaceType.DISInterfaceNone)
        {
            BeforeRequest(requestContent, region, projectId);

            requestObs = SignUtil.Sign(requestObs, ak, sk, region);

            T result = DoRequest <T>(requestContent, interfaceName);

            return(result);
        }
        public override void onMyTradeEvent(SendMessage sendMessage)
        {
            var channel = IdaxApiConstants.CHANNEL_MY_TRADE;

            sendMessage.eventType       = EventTypeEnum.ADD_CHANNEL.GetDisplayAttribute();
            sendMessage.channel         = channel;
            sendMessage.parameters.sign = SignUtil.GetSign(sendMessage.parameters, secret);;

            createNewWebSocket(channel, sendMessage);
        }
        public async Task <string> RequestAsync(object requestContent, string ak, string sk, string region, string projectId)
        {
            this.BeforeRequest(requestContent, region, projectId);

            requestObs = SignUtil.Sign(requestObs, ak, sk, region);

            var result = await DoRequestAsync <string>(requestContent);

            return(result);
        }
Exemplo n.º 25
0
        public string Request(object requestContent, string ak, string sk, string region, string projectId)
        {
            BeforeRequest(requestContent, region, projectId);

            requestObs = SignUtil.Sign(requestObs, ak, sk, region);

            string result = DoRequest <string>(requestContent);

            return(result);
        }
Exemplo n.º 26
0
        public string GetRequestUrl(string returnUrl, string notifyUrl, string orderId, decimal totalFee, string productInfo, string openId = null)
        {
            string resultUrl = string.Empty;

            if (CUConfig == null)
            {
                CUConfig = Utility <ChinaUnionConfig> .GetConfig(WorkDirectory);
            }
            if (string.IsNullOrEmpty(CUConfig.merId))
            {
                throw new PluginException("未设置商户编码!");
            }
            if (string.IsNullOrEmpty(CUConfig.signCertpath))
            {
                throw new PluginException("未设置商户私钥证书!");
            }

            Dictionary <string, string> dictParams = new Dictionary <string, string>();

            dictParams.Add("merId", CUConfig.merId);
            dictParams.Add("version", CUConfig.version);
            dictParams.Add("encoding", CUConfig.encoding);
            dictParams.Add("signMethod", CUConfig.signMethod);
            dictParams.Add("txnType", CUConfig.txnType);
            dictParams.Add("txnSubType", CUConfig.txnSubType);
            dictParams.Add("bizType", CUConfig.bizType);
            dictParams.Add("channelType", CUConfig.channelType);
            dictParams.Add("accessType", CUConfig.accessType);
            dictParams.Add("currencyCode", CUConfig.currencyCode);
            dictParams.Add("frontUrl", returnUrl);
            dictParams.Add("backUrl", notifyUrl);
            dictParams.Add("orderId", orderId);
            dictParams.Add("txnTime", DateTime.Now.ToString("yyyyMMddHHmmss"));
            dictParams.Add("txnAmt", ((int)(totalFee * 100)).ToString());
            string signCertpath = WorkDirectory + "\\Cert\\" + CUConfig.signCertpath;

            try
            {
                //string signCertpath = WorkDirectory + "\\Cert\\" + CUConfig.signCertpath;
                bool isSign = SignUtil.Sign(dictParams, System.Text.ASCIIEncoding.GetEncoding(CUConfig.encoding), signCertpath, CUConfig.signCertpwd);
                if (!isSign)
                {
                    throw new PluginException("签名失败!");
                }
            }
            catch (Exception ex)
            {
                throw new PluginException(ex.Message);
            }
            resultUrl = CUConfig.frontTransUrl + "?" + SignUtil.CoverDictionaryToString(dictParams);
            return(resultUrl);
        }
Exemplo n.º 27
0
        public string GetRequestUrl(string returnUrl, string notifyUrl, string orderId, decimal totalFee, string productInfo, string openId = null)
        {
            string empty = string.Empty;

            if (ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig == null)
            {
                ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig = Utility <ChinaUnionConfig> .GetConfig(base.WorkDirectory);
            }
            if (string.IsNullOrEmpty(ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.merId))
            {
                throw new PluginException("未设置商户编码!");
            }
            if (string.IsNullOrEmpty(ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.signCertpath))
            {
                throw new PluginException("未设置商户私钥证书!");
            }
            Dictionary <string, string> strs = new Dictionary <string, string>()
            {
                { "merId", ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.merId },
                { "version", ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.version },
                { "encoding", ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.encoding },
                { "signMethod", ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.signMethod },
                { "txnType", ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.txnType },
                { "txnSubType", ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.txnSubType },
                { "bizType", ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.bizType },
                { "channelType", ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.channelType },
                { "accessType", ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.accessType },
                { "currencyCode", ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.currencyCode },
                { "frontUrl", returnUrl },
                { "backUrl", notifyUrl },
                { "orderId", orderId },
                { "txnTime", DateTime.Now.ToString("yyyyMMddHHmmss") }
            };
            int num = (int)(totalFee * new decimal(100));

            strs.Add("txnAmt", num.ToString());
            string str = string.Concat(base.WorkDirectory, "\\Cert\\", ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.signCertpath);

            try
            {
                if (!SignUtil.Sign(strs, Encoding.GetEncoding(ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.encoding), str, ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.signCertpwd))
                {
                    throw new PluginException("签名失败!");
                }
            }
            catch (Exception exception)
            {
                throw new PluginException(exception.Message);
            }
            empty = string.Concat(ChemCloud.Plugin.Payment.UnionPay.UnionPay.CUConfig.frontTransUrl, "?", SignUtil.CoverDictionaryToString(strs));
            return(empty);
        }
Exemplo n.º 28
0
 /// <summary>
 /// 验证服务端返回的sign
 /// </summary>
 /// <returns><c>true</c>, if response sign was checked, <c>false</c> otherwise.</returns>
 /// <param name="signContent">Response data.</param>
 /// <param name="sign">sign data.</param>
 /// <param name="publicKeyPlatform">Public key platform.</param>
 protected virtual bool CheckResponseSign(string signContent, string sign, string publicKeyPlatform)
 {
     try
     {
         Encoding charset  = openConfig.Charset;
         SignType signType = openConfig.SignType;
         return(SignUtil.RsaCheck(signContent, sign, publicKeyPlatform, charset, signType));
     }
     catch (Exception)
     {
         return(false);
     }
 }
Exemplo n.º 29
0
        private static Boolean VerifySign(String signContent, String sign, out String errorMessage)
        {
            errorMessage = null;

            sign = DecodeBase64(sign.Substring(0, sign.Length - "$SHA256".Length));

            var verifyResult = SignUtil.VerifySign(sign, signContent, KeyConfig.YeePay_FundOut_PublicKey, "RSA2");

            if (!verifyResult.Success)
            {
                errorMessage = verifyResult.ErrorMessage;
            }
            return(verifyResult.Success && verifyResult.Value);
        }
Exemplo n.º 30
0
        public override void SendRequest()
        {
            string    str3      = SignUtil.HmacSign(SignUtil.HmacSign(this.characterSet + this.callbackUrl + this.notifyUrl + this.ipAddress + this.MerchantAcctId + this.requestId + this.signType + this.type + this.version + this.amount + this.bankAbbr + this.currency + this.orderDate + this.orderId + this.merAcDate + this.period + this.periodUnit + this.merchantAbbr + this.productDesc + this.productId + this.productName + this.productNum + this.reserved1 + this.reserved2 + this.userToken + this.showUrl + this.couponsFlag), this.Key);
            string    data      = "characterSet=" + this.characterSet + "&callbackUrl=" + this.callbackUrl + "&notifyUrl=" + this.notifyUrl + "&ipAddress=" + this.ipAddress + "&merchantId=" + this.MerchantAcctId + "&requestId=" + this.requestId + "&signType=" + this.signType + "&type=" + this.type + "&version=" + this.version + "&amount=" + this.amount + "&bankAbbr=" + this.bankAbbr + "&currency=" + this.currency + "&orderDate=" + this.orderDate + "&orderId=" + this.orderId + "&merAcDate=" + this.merAcDate + "&period=" + this.period + "&periodUnit=" + this.periodUnit + "&merchantAbbr=" + this.merchantAbbr + "&productDesc=" + this.productDesc + "&productId=" + this.productId + "&productName=" + this.productName + "&productNum=" + this.productNum + "&reserved1=" + this.reserved1 + "&reserved2=" + this.reserved2 + "&userToken=" + this.userToken + "&showUrl=" + this.showUrl + "&couponsFlag=" + this.couponsFlag + "&hmac=" + str3;
            Hashtable hashtable = IPosMUtil.parseStringToMap(IPosMUtil.httpRequest("https://ipos.10086.cn/ips/cmpayService", data));
            string    hmac      = (string)hashtable["hmac"];
            string    str7      = (string)hashtable["returnCode"];
            string    str8      = (string)hashtable["message"];

            if ("000000".Equals(str7) && SignUtil.verifySign(((string)hashtable["merchantId"]) + ((string)hashtable["requestId"]) + ((string)hashtable["signType"]) + ((string)hashtable["type"]) + ((string)hashtable["version"]) + str7 + str8 + ((string)hashtable["payUrl"]), this.Key, hmac))
            {
                string payUrl = (string)hashtable["payUrl"];
                HttpContext.Current.Response.Redirect(IPosMUtil.getRedirectUrl(payUrl));
            }
        }