示例#1
0
        /// <summary>
        /// 用于防钓鱼,调用接口query_timestamp来获取时间戳的处理函数
        /// 注意:远程解析XML出错,与IIS服务器配置有关
        /// </summary>
        /// <returns>时间戳字符串</returns>
        private string Query_timestamp(XuHos.Common.Config.Sections.Pay.AliPay Config)
        {
            string url         = define.GATEWAY_NEW + "service=query_timestamp&partner=" + Config.partner + "&_input_charset=" + define.input_charset;
            string encrypt_key = "";

            XmlTextReader Reader = new XmlTextReader(url);
            XmlDocument   xmlDoc = new XmlDocument();

            xmlDoc.Load(Reader);

            encrypt_key = xmlDoc.SelectSingleNode("/alipay/response/timestamp/encrypt_key").InnerText;

            return(encrypt_key);
        }
示例#2
0
        /// <summary>
        /// 建立请求,以表单HTML形式构造(默认)
        /// </summary>
        /// <param name="sParaTemp">请求参数数组</param>
        /// <param name="strMethod">提交方式。两个值可选:post、get</param>
        /// <param name="strButtonValue">确认按钮显示文字</param>
        /// <returns>提交表单HTML文本</returns>
        public static string BuildRequest(SortedDictionary <string, string> sParaTemp, string strMethod, string strButtonValue, XuHos.Common.Config.Sections.Pay.AliPay Config)
        {
            //待请求参数数组
            Dictionary <string, string> dicPara = new Dictionary <string, string>();

            dicPara = BuildRequestPara(sParaTemp, Config);

            StringBuilder sbHtml = new StringBuilder();

            sbHtml.Append("<form id='alipaysubmit' name='alipaysubmit' action='" + define.GATEWAY_NEW + "_input_charset=" + define.input_charset + "' method='" + strMethod.ToLower().Trim() + "'>");

            foreach (KeyValuePair <string, string> temp in dicPara)
            {
                sbHtml.Append("<input type='hidden' name='" + temp.Key + "' value='" + temp.Value + "'/>");
            }

            //submit按钮控件请不要含有name属性
            sbHtml.Append("<input type='submit' value='" + strButtonValue + "' style='display:none;'></form>");

            sbHtml.Append("<script>document.forms['alipaysubmit'].submit();</script>");

            return(sbHtml.ToString());
        }
示例#3
0
        /// <summary>
        /// 生成要请求给支付宝的参数数组
        /// </summary>
        /// <param name="sParaTemp">请求前的参数数组</param>
        /// <param name="code">字符编码</param>
        /// <returns>要请求的参数数组字符串</returns>
        public static string BuildRequestParaToString(SortedDictionary <string, string> sParaTemp, Encoding code, XuHos.Common.Config.Sections.Pay.AliPay Config)
        {
            //待签名请求参数数组
            Dictionary <string, string> sPara = new Dictionary <string, string>();

            sPara = BuildRequestPara(sParaTemp, Config);

            //把参数组中所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对参数值做urlencode
            string strRequestData = Core.CreateLinkStringUrlencode(sPara, code);

            return(strRequestData);
        }
示例#4
0
        /// <summary>
        /// 生成要请求给支付宝的参数数组
        /// </summary>
        /// <param name="sParaTemp">请求前的参数数组</param>
        /// <returns>要请求的参数数组</returns>
        public static Dictionary <string, string> BuildRequestPara(SortedDictionary <string, string> sParaTemp, XuHos.Common.Config.Sections.Pay.AliPay Config)
        {
            //待签名请求参数数组
            Dictionary <string, string> sPara = new Dictionary <string, string>();
            //签名结果
            string mysign = "";

            //过滤签名参数数组
            sPara = Core.FilterPara(sParaTemp);

            //获得签名结果
            mysign = BuildRequestMysign(sPara, Config.key);

            //签名结果与签名方式加入请求提交参数组中
            sPara.Add("sign", mysign);
            sPara.Add("sign_type", define.sign_type);

            return(sPara);
        }
示例#5
0
        public static string AjaxRequest(SortedDictionary <string, string> sParaTemp, XuHos.Common.Config.Sections.Pay.AliPay Config)
        {
            Dictionary <string, string> dicPara = new Dictionary <string, string>();

            dicPara = BuildRequestPara(sParaTemp, Config);


            System.Collections.Specialized.NameValueCollection values = new System.Collections.Specialized.NameValueCollection();
            StringBuilder data = new StringBuilder();

            foreach (KeyValuePair <string, string> temp in dicPara)
            {
                if (data.Length > 0)
                {
                    data.Append("&");
                }

                data.AppendFormat("{0}={1}", temp.Key, temp.Value);

                values.Add(temp.Key, temp.Value);
            }

            var requestUrl       = define.GATEWAY_NEW + data.ToString();
            var requestBeginTime = DateTime.Now;
            var response         = "";

            try
            {
                System.Net.WebClient client = new System.Net.WebClient();
                client.Encoding = System.Text.Encoding.UTF8;
                response        = client.DownloadString(requestUrl);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex);
            }
            finally
            {
                TrackApiLog.WriteLog("AliPay", requestUrl, "GET", data.ToString(), requestBeginTime, response);
            }
            return(response);
        }
示例#6
0
        string _key     = "";               //商户的私钥
        #endregion

        /// <summary>
        /// 构造函数
        /// 从配置文件中初始化变量
        /// </summary>
        /// <param name="inputPara">通知返回参数数组</param>
        /// <param name="notify_id">通知验证ID</param>
        public Notify(XuHos.Common.Config.Sections.Pay.AliPay Config)
        {
            //初始化基础配置信息
            _partner = Config.partner.Trim();
            _key     = Config.key.Trim();
        }