Exemple #1
0
        public static PayOrderResult CreateOrder(WeChatPayOrder order)
        {
            HttpHelper httpHelper = new HttpHelper();

            SetSign(order);
            string     data   = CreateXmlParam(JsonConvert.DeserializeObject <Dictionary <string, string> >(JsonConvert.SerializeObject(order)));
            HttpResult result = httpHelper.GetHtml(new HttpItem()
            {
                URL          = "https://api.mch.weixin.qq.com/pay/unifiedorder",
                Postdata     = data,
                Method       = "Post",
                PostEncoding = Encoding.UTF8,
                Encoding     = Encoding.UTF8,
                ContentType  = "text/xml;"
            });
            PayOrderResult payOrderResult = XmlHelper.DeserializeToObject <PayOrderResult>(result.Html);

            payOrderResult.timeStamp = GetTimeStamp(DateTime.Now).ToString();
            SetPaySign(payOrderResult);
            return(payOrderResult);
        }
Exemple #2
0
        /// <summary>
        /// MD5(appId=wxd678efh567hg6787&
        /// nonceStr=5K8264ILTKCH16CQ2502SI8ZNMTM67VS&
        /// package=prepay_id=wx2017033010242291fcfe0db70013231072&
        /// signType=MD5&
        /// timeStamp=1490840662&
        /// key=qazwsxedcrfvtgbyhnujmikolp111111)
        /// </summary>
        /// <param name="o"></param>
        static void SetPaySign(PayOrderResult o)
        {
            Dictionary <string, string> d = new Dictionary <string, string>();

            d.Add("appId", AppID);
            d.Add("nonceStr", o.nonce_str);
            d.Add("package", "prepay_id=" + o.prepay_id);
            d.Add("signType", "MD5");
            d.Add("timeStamp", o.timeStamp);
            var    vDic    = (from objDic in d orderby objDic.Key ascending select objDic);
            string stringA = "";

            foreach (var item in vDic)
            {
                string val = item.Value;
                string key = item.Key;
                if (!string.IsNullOrEmpty(val))
                {
                    stringA += $"{key}={val}&";
                }
            }
            stringA   = stringA.Trim('&') + "&key=" + SHSercret;
            o.paySign = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(stringA, "MD5").ToUpper();
        }