/// <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)); } }
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); }
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)); }
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()); }
/// <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)); }
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); }
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) }); }
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(); }
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); }
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); } }
/** ***** **/ /** 扩展字段-暂未启用 * 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; }
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); }
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); } } })); }
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)); } }
//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); }
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); }
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); }
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); }
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); }
/// <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); } }
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); }
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 + "¬ifyUrl=" + 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 + "¤cy=" + 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)); } }