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); }