public Models.PayParms GetPayParm()
        {
            var    prePayDic = new Dictionary <string, string>();
            string openid    = System.Configuration.ConfigurationManager.AppSettings["openId"];

            prePayDic.Add("appid", "wx551c10a5e99a84e5");
            prePayDic.Add("body", "test");
            prePayDic.Add("mch_id", "10037082");
            prePayDic.Add("nonce_str", "1add1a30ac87aa2db72f57a2375d8fec");
            prePayDic.Add("notify_url", "http://www.baidu.com/");
            prePayDic.Add("out_trade_no", "15" + DateTime.Now.Month.ToString().PadLeft(2, '0') + DateTime.Now.Day.ToString().PadLeft(2, '0') + DateTime.Now.Hour.ToString().PadLeft(2, '0') + DateTime.Now.Minute.ToString().PadLeft(2, '0') + DateTime.Now.Second.ToString().PadLeft(2, '0'));
            prePayDic.Add("spbill_create_ip", "121.40.79.86");
            prePayDic.Add("total_fee", "1");
            prePayDic.Add("trade_type", "JSAPI");
            prePayDic.Add("openid", openid);

            //        <appid>wx551c10a5e99a84e5</appid>
            //<body>test</body>
            //<mch_id>10037082</mch_id>
            //<nonce_str>1add1a30ac87aa2db72f57a2375d8fec</nonce_str>
            //<notify_url>http://www.baidu.com/</notify_url>
            //<openid>oK7_ajtkA5qGiwrU2MNqa7vs3ttE</openid>
            //<out_trade_no>out_trade_no</out_trade_no>
            //<spbill_create_ip>121.40.79.86</spbill_create_ip>
            //<total_fee>1</total_fee>
            //<trade_type>JSAPI</trade_type>
            //<sign>00492A884A794C6B3892D4406BA6DD8A</sign>
            string sign = Helper.GetMD5(prePayDic);

            prePayDic.Add("sign", sign);
            string resStr     = Helper.GerResponse(Helper.GetReqStr(prePayDic), "https://api.mch.weixin.qq.com/pay/unifiedorder");
            int    startIndex = resStr.IndexOf("<prepay_id><![CDATA[") + "<prepay_id><![CDATA[".Length;
            int    endIndex   = resStr.IndexOf("]]></prepay_id>");

            string prepayId = resStr.Substring(startIndex, endIndex - startIndex);

            Models.PayParms pp = new Models.PayParms()
            {
                timeStamp = Helper.getTimestamp()
            };
            pp.SetPackage(prepayId);

            Helper.GetMD5(ref pp);

            var db   = new Models.ModelContext();
            var user = db.UserSet.FirstOrDefault(u => u.OpenId == openid);

            if (user != null)
            {
                user.Balance += 0.01;
                db.SaveChanges();
            }
            return(pp);
        }
        public static string GetMD5(ref Models.PayParms pp)
        {
            Dictionary <string, string> dic = new Dictionary <string, string>();

            dic.Add("appId", pp.appId);
            dic.Add("timeStamp", pp.timeStamp);
            dic.Add("package", pp.package);
            dic.Add("signType", pp.signType);
            dic.Add("nonceStr", pp.nonceStr);
            pp.paySign = GetMD5(dic);

            return(pp.paySign);
        }