Exemple #1
0
 internal static void WriteLog(string logContent, DateTime logTime)
 {
     using (WechatDBDataContext db = new WechatDBDataContext(Settings.Default.WechatDBConnectionString))
     {
         WechatLog log = new WechatLog();
         log.LogContent = logContent;
         log.LogTime    = logTime;
         db.WechatLogs.InsertOnSubmit(log);
         db.SubmitChanges();
     }
 }
Exemple #2
0
        public string JsPay(string title, string description, int price)
        {
            //统一下单
            SortedDictionary <string, object> orderParams = new SortedDictionary <string, object>();

            orderParams.Add("appid", ApiModel.AppID);
            orderParams.Add("attach", title);
            orderParams.Add("body", description);
            orderParams.Add("mch_id", ApiModel.MchID);
            orderParams.Add("nonce_str", Common.GetNonceStr());
            orderParams.Add("notify_url", "http://www.liblog.cn/test/pay/payresultnotify");
            orderParams.Add("openid", System.Web.HttpContext.Current.Request.Cookies["OpenId"].Value.ToString());
            orderParams.Add("out_trade_no", Pay.GetOutTradeNo(ApiModel.MchID));
            orderParams.Add("spbill_create_ip", "171.8.215.143");
            orderParams.Add("total_fee", price);
            orderParams.Add("trade_type", "JSAPI");
            orderParams.Add("sign", Pay.GetSign(orderParams, ApiModel.MchAPISecret));

            WechatLog.Info("", "1" + ApiModel.AppID + "2" + title + "3" + description + "4" + ApiModel.MchID + "5" + Common.GetNonceStr() + "6" + System.Web.HttpContext.Current.Request.Cookies["OpenId"].Value.ToString() + "7" + Pay.GetOutTradeNo(ApiModel.MchID) + "8" + Pay.GetSign(orderParams, ApiModel.MchAPISecret));
            var result = Pay.UnifiedOrder(orderParams);

            //统一下单失败,返回错误结果给微信平台
            if (result["return_code"].ToString() != "SUCCESS")
            {
                return(JsonConvert.SerializeObject(Pay.ErrorInfo("统一下单失败")));
            }

            //获取H5调起JS API参数
            SortedDictionary <string, object> apiParams = new SortedDictionary <string, object>();

            apiParams.Add("appId", ApiModel.AppID);
            apiParams.Add("timeStamp", Common.GetTimeStamp());
            apiParams.Add("nonceStr", Common.GetNonceStr());
            apiParams.Add("package", "prepay_id=" + result["prepay_id"].ToString());
            apiParams.Add("signType", "MD5");
            apiParams.Add("paySign", Pay.GetSign(apiParams, ApiModel.MchAPISecret));

            return(JsonConvert.SerializeObject(apiParams));
        }