示例#1
0
        public virtual async Task <ActionResult> GetJsSdkConfigParameters([FromQuery] string jsUrl)
        {
            if (string.IsNullOrEmpty(jsUrl))
            {
                throw new UserFriendlyException("需要计算的 JS URL 参数不能够为空。");
            }

            var nonceStr  = RandomStringHelper.GetRandomString();
            var timeStamp = DateTimeHelper.GetNowTimeStamp();
            var ticket    = await _jsTicketAccessor.GetTicketAsync();

            var @params = new WeChatParameters();

            @params.AddParameter("noncestr", nonceStr);
            @params.AddParameter("jsapi_ticket", await _jsTicketAccessor.GetTicketAsync());
            @params.AddParameter("url", HttpUtility.UrlDecode(jsUrl));
            @params.AddParameter("timestamp", timeStamp);

            var signStr = _signatureGenerator.Generate(@params, SHA1.Create()).ToLower();

            return(new JsonResult(new
            {
                appid = _optionsResolver.Resolve().AppId,
                noncestr = nonceStr,
                timestamp = timeStamp,
                signature = signStr,
                jsapi_ticket = ticket
            }));
        }
示例#2
0
        public string DataParseFuntion(List <PrintItemModel> templetModels, List <int> indexs)
        {
            try
            {
                if (indexs == null || indexs.Count < 1)
                {
                    throw new Exception(string.Format("请正确设置数据条目中使用FunctionName=\"{0}\"的ProviderIndexs值.", this.GetType().Name));
                }
                string reValue = string.Empty;
                int    index   = indexs[0];

                PrintItemModel temp = templetModels.FirstOrDefault(p =>
                {
                    return(p.Index == index);
                });
                if (temp == null)
                {
                    throw new Exception(string.Format("未查询到Index={0}的打印条目", index));
                }

                return(reValue = RandomStringHelper.GetRandomString(temp.FunctionData.RandomType, temp.FunctionData.RandomLength));
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("执行{0}异常:{1}", this.GetType().Name, ex.Message));
            }
        }
示例#3
0
        public virtual async Task <ActionResult> GetJsSdkWeChatPayParameters([FromQuery] string appId, string prepayId)
        {
            if (string.IsNullOrEmpty(prepayId))
            {
                throw new UserFriendlyException("请传入有效的预支付订单 Id。");
            }

            var nonceStr  = RandomStringHelper.GetRandomString();
            var timeStamp = DateTimeHelper.GetNowTimeStamp();
            var package   = $"prepay_id={prepayId}";
            var signType  = "MD5";

            var option = await _optionsResolver.ResolveAsync();

            var @params = new WeChatParameters();

            @params.AddParameter("appId", appId);
            @params.AddParameter("nonceStr", nonceStr);
            @params.AddParameter("timeStamp", timeStamp);
            @params.AddParameter("package", package);
            @params.AddParameter("signType", signType);

            var paySignStr = _signatureGenerator.Generate(@params, MD5.Create(), option.ApiKey);

            return(new JsonResult(new
            {
                nonceStr,
                timeStamp,
                package,
                signType,
                paySign = paySignStr
            }));
        }
示例#4
0
        public void FillInEmailEntry()
        {
            _topEmailSignUp.Click();
            _topEmailSignUp.Clear();
            var email = $"{RandomStringHelper.GetRandomString(6)}.{RandomStringHelper.GetRandomString(8)}@random.com";

            _topEmailSignUp.SendKeys(email);
            Thread.Sleep(1000);
        }