/// <summary> /// 永乐充值接口 /// </summary> /// <param name="post">充值参数数组,顺序为:充值时间、充值号码、充值金额(个数)、使用类型、真实姓名</param> /// <param name="usetype">充值类型</param> /// <returns></returns> public static string APIyolly(object[] post, usetype usetype) { string YOLLYID = yollyinterface.yollyid; string YOLLYKEY = yollyinterface.yollykey; string url = ""; string para = string.Empty; switch (usetype) { case usetype.Phone: url = " http://www.yolly.cn/third/interfaceNew/recharge.do?"; para += string.Format("YOLLYID={0}", HttpContext.Current.Server.UrlEncode(YOLLYID)); para += string.Format("&YOLLYTIME={0}", HttpContext.Current.Server.UrlEncode((post[0]).ToString())); //发起时间 para += string.Format("&YOLLYURL={0}", HttpContext.Current.Server.UrlEncode(Globals.API_Domain + "Calls/call_yolly.ashx")); //回调url para += string.Format("&YOLLYFLOW={0}", HttpContext.Current.Server.UrlEncode((post[3]).ToString())); //流水号 para += string.Format("&MOBILE={0}", HttpContext.Current.Server.UrlEncode((post[1]).ToString())); //充值号码 para += string.Format("&MONEY={0}", HttpContext.Current.Server.UrlEncode((post[2]).ToString())); //充值金额 65548187000000120160823184853134770789511D39316FEC4984ABE97ED554D749EBE86 para += string.Format("&TYPE={0}", HttpContext.Current.Server.UrlEncode("")); para += string.Format("&CIPHERTEXT={0}", HttpContext.Current.Server.UrlEncode("yolly2.0")); //密文标识 string Pmd5 = SecurityHelper.GetMd5To32(YOLLYID + (post[3]).ToString() + (post[0]).ToString() + Globals.API_Domain + "Calls/call_yolly.ashx" + (post[1]).ToString() + (post[2]).ToString() + "" + YOLLYKEY).ToLower(); para += string.Format("&MD5TEXT={0}", HttpContext.Current.Server.UrlEncode(Pmd5)); break; case usetype.QQB: url = " http://www.yolly.cn/third/interfaceGame/rechargeGame.do?"; para += string.Format("YOLLYID={0}", HttpContext.Current.Server.UrlEncode(YOLLYID)); para += string.Format("&YOLLYTIME={0}", HttpContext.Current.Server.UrlEncode((post[0]).ToString())); //发起时间 para += string.Format("&YOLLYURL={0}", HttpContext.Current.Server.UrlEncode(Globals.API_Domain + "Calls/call_yolly.ashx")); //发起时间 para += string.Format("&YOLLYFLOW={0}", HttpContext.Current.Server.UrlEncode((post[3]).ToString())); //流水号 para += string.Format("&ACCOUNT={0}", HttpContext.Current.Server.UrlEncode((post[1]).ToString())); //充值号码 para += string.Format("&NUM={0}", HttpContext.Current.Server.UrlEncode((post[2]).ToString())); //充值金额 65548187000000120160823184853134770789511D39316FEC4984ABE97ED554D749EBE86 para += string.Format("&TYPE={0}", HttpContext.Current.Server.UrlEncode((post[4]).ToString())); para += string.Format("&CIPHERTEXT={0}", HttpContext.Current.Server.UrlEncode("yolly2.0")); //密文标识 para += string.Format("&alipayName={0}", HttpContext.Current.Server.UrlEncode((post[5]).ToString())); //用户支付宝真实姓名 string Qmd5 = SecurityHelper.GetMd5To32(YOLLYID + (post[3]).ToString() + (post[0]).ToString() + Globals.API_Domain + "Calls/call_yolly.ashx" + (post[1]).ToString() + (post[4]).ToString() + (post[2]).ToString() + (post[5]).ToString() + YOLLYKEY).ToLower(); para += string.Format("&MD5TEXT={0}", HttpContext.Current.Server.UrlEncode(Qmd5)); break; case usetype.Alipay: string reusename = HttpUtility.UrlEncode(HttpUtility.UrlEncode((post[5]).ToString(), UTF8Encoding.UTF8), UTF8Encoding.UTF8); url = " http://www.yolly.cn/third/interfaceGame/rechargeGame.do?"; para += string.Format("YOLLYID={0}", HttpContext.Current.Server.UrlEncode(YOLLYID)); para += string.Format("&YOLLYTIME={0}", HttpContext.Current.Server.UrlEncode((post[0]).ToString())); //发起时间 para += string.Format("&YOLLYURL={0}", HttpContext.Current.Server.UrlEncode(Globals.API_Domain + "Calls/call_yolly.ashx")); //发起时间 para += string.Format("&YOLLYFLOW={0}", HttpContext.Current.Server.UrlEncode((post[3]).ToString())); //流水号 para += string.Format("&ACCOUNT={0}", HttpContext.Current.Server.UrlEncode((post[1]).ToString())); //充值号码 para += string.Format("&NUM={0}", HttpContext.Current.Server.UrlEncode((post[2]).ToString())); //充值金额 65548187000000120160823184853134770789511D39316FEC4984ABE97ED554D749EBE86 para += string.Format("&TYPE={0}", HttpContext.Current.Server.UrlEncode((post[4]).ToString())); //1.QQ币 2.支付宝账号充值 para += string.Format("&CIPHERTEXT={0}", HttpContext.Current.Server.UrlEncode("yolly2.0")); //密文标识 para += string.Format("&alipayName={0}", HttpContext.Current.Server.UrlEncode(reusename)); //用户支付宝真实姓名 string Amd5 = SecurityHelper.GetMd5To32(YOLLYID + (post[3]).ToString() + (post[0]).ToString() + Globals.API_Domain + "Calls/call_yolly.ashx" + (post[1]).ToString() + (post[4]).ToString() + (post[2]).ToString() + (post[5]).ToString() + YOLLYKEY).ToLower(); para += string.Format("&MD5TEXT={0}", HttpContext.Current.Server.UrlEncode(Amd5)); break; } return(sendreceive(Encoding.ASCII.GetBytes(para), url)); }
/// <summary> /// 生成订单号 /// </summary> public static string GenerateYollyID(usetype usetype) { //根据业务设置订单号前辍 string strPrev = "W"; switch (usetype) { case usetype.Phone: strPrev = "P"; break; case usetype.QQB: strPrev = "Q"; break; case usetype.Alipay: strPrev = "A"; break; case usetype.Wangba: strPrev = "W"; break; } //框架自带随机在大数据量下很容易重复,自写递增随机毫秒数再加随机数来确保订单唯一性 int currStep = yollyinterface.step; yollyinterface.step = yollyinterface.step + 1; if (yollyinterface.step > 999) { yollyinterface.step = 0; } //生成 Random rd = new Random(); int iRandom = rd.Next(100, 999); string orderid = strPrev + DateTime.Now.AddMilliseconds(currStep).ToString("yyMMddHHmmssfff") + iRandom.ToString(); return(orderid); }