Esempio n. 1
0
        public IHttpActionResult Putweixin_list(int id, weixin_list weixin_list)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != weixin_list.weixin_id)
            {
                return(BadRequest());
            }

            db.Entry(weixin_list).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!weixin_listExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Esempio n. 2
0
        public IHttpActionResult Getweixin_list(int id)
        {
            weixin_list weixin_list = db.weixin_list.Find(id);

            if (weixin_list == null)
            {
                return(NotFound());
            }

            return(Ok(weixin_list));
        }
Esempio n. 3
0
        public IHttpActionResult Postweixin_list(weixin_list weixin_list)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.weixin_list.Add(weixin_list);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = weixin_list.weixin_id }, weixin_list));
        }
Esempio n. 4
0
        public WeixinJsTicket(string _access_token, string _ticket, string _ticket_time, int _weixin_id)
        {
            //需要查询对应的微信信息
            weixin_list weixin = new weixin_list();

            WeixinAPI api = new WeixinAPI(weixin.appid, weixin.appsecret, weixin.access_token, weixin.access_token_time.ToString(), weixin.weixin_id);

            rootSuccess = true;
            LogHelper.Info("微信公众号accesstoken获取成功:" + api.AccessToken);
            AccessToken = api.AccessToken;
            Ticket      = _ticket;
            TicketTime  = _ticket_time;
            //检查授权有效期,如果凭证为空,或者已失效,则需要请求授权
            DateTime time = DateTime.Now;

            if (!string.IsNullOrEmpty(_ticket_time))
            {
                time = DateTime.Parse(_ticket_time);
            }
            int comtime = (int)time.Subtract(DateTime.Now).TotalMinutes;

            //凭证在5分钟以内将失效,则重新获取凭证
            if (comtime < 5)
            {
                string s = Util.MethodGET("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + AccessToken + "&type=jsapi", "UTF-8");
                try
                {
                    JObject jo = JObject.Parse(s);
                    Ticket = jo["ticket"].ToString();
                    LogHelper.Info("微信公众号ticket获取成功:" + Ticket);
                    TicketTime = System.DateTime.Now.AddSeconds(double.Parse(jo["expires_in"].ToString())).ToString();

                    //将获取的最新 Jsapi_Ticket 保存到数据库中

                    //if (weixin_applet != null)
                    //{
                    //    weixin_applet.jsapi_ticket = Ticket;
                    //    weixin_applet.jsapi_ticket_time = Convert.ToDateTime(TicketTime);
                    //    //baseBLL.Update(weixin_applet);
                    //    db.Update("weixin", weixin_applet, "id=" + _weixin_applet_id);
                    //    LogHelper.Info("更新微信Ticket:" + Ticket);
                    //}
                }
                catch (Exception e)
                {
                    rootSuccess = false;
                    rootErrMsg  = e.Message;
                }
                resource = s;
            }
        }
Esempio n. 5
0
        public IHttpActionResult Deleteweixin_list(int id)
        {
            weixin_list weixin_list = db.weixin_list.Find(id);

            if (weixin_list == null)
            {
                return(NotFound());
            }

            db.weixin_list.Remove(weixin_list);
            db.SaveChanges();

            return(Ok(weixin_list));
        }
Esempio n. 6
0
        /// <summary>
        /// 组织发送模板消息内容
        /// </summary>
        /// <param name="weixin">微信公众号信息</param>
        /// <param name="templateCode">模板消息:OPENTM200654400</param>
        /// <param name="openid">用户在公众号下的openid</param>
        /// <param name="data">{{first.DATA}} 商家名称:{{keyword1.DATA}} 商家电话:{{keyword2.DATA}} 订单号:{{keyword3.DATA}} 状态:{{keyword4.DATA}} 总价:{{keyword5.DATA}} {{remark.DATA}}</param>
        /// <returns></returns>
        public static string sendWeixinTemplate(weixin_list weixin, string templateCode, string openid, string data, string seedName, string appcode, string weixin_applet_path)
        {
            //BaseBLL<weixin_template> templateBll = new BaseBLL<weixin_template>();
            //weixin_template Template = templateBll.Find(x => x.template_code == templateCode && x.weixin_id == weixin.id);
            //组织发送的数据
            string[] valueArray = data.Split(';');
            JObject  _data      = JObject.Parse("{}");

            for (int i = 0; i < valueArray.Length; i++)
            {
                if (i == 0)
                {
                    JObject subObject = new JObject(
                        new JProperty("value", valueArray[i]),
                        new JProperty("color", "#173177")
                        );
                    _data.Add("first", subObject);
                }
                else if (i == valueArray.Length - 1)
                {
                    JObject subObject = new JObject(
                        new JProperty("value", valueArray[i]),
                        new JProperty("color", "#173177")
                        );
                    _data.Add("remark", subObject);
                }
                else
                {
                    JObject subObject = new JObject(
                        new JProperty("value", valueArray[i]),
                        new JProperty("color", "#333")
                        );
                    _data.Add("keyword" + (i), subObject);
                }
            }

            WeixinAPI weixinXApi = new WeixinAPI(weixin.appid, weixin.appsecret, weixin.access_token, weixin.access_token_time.ToString(), weixin.weixin_id);
            JObject   postData   = JObject.Parse("{}");

            postData.Add("touser", openid);
            postData.Add("template_id", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            postData.Add("url", "https://tlkjbase.whtlkj.net/Home/TemplateView?orderform_id=123456" + "&openid=" + openid + "&weixin_id=" + weixin.weixin_id + "&appcode=" + appcode + "&seedName=" + seedName + "&weixin_applet_path=" + weixin_applet_path + "&notifyUrl=" + Util.getServerPath());
            postData.Add("data", _data);
            return(weixinXApi.sendTemplateByPublic(postData.ToString()));
        }
        /// <summary>
        /// 统一下单
        /// </summary>
        /// <param name="openid"></param>
        /// <param name="appcode"></param>
        /// <param name="seedName"></param>
        /// <param name="notifyUrl"></param>
        /// <param name="weixin"></param>
        /// <returns></returns>
        public weixin_jsapi_pay GetPayParaData(string openid, string appcode, string seedName, string notifyUrl, weixin_list weixin)
        {
            //微信公众号统一下单 (需要将数据库weixin的信息补全)
            WeixinPay weixinPay = new WeixinPay(System.Web.HttpContext.Current, weixin.appid, weixin.appsecret, weixin.pay_mch_id, weixin.pay_partner_key);
            //string payNumber = Common.Orderform.Orderform.getNewPayNumer(orderform.uid.ToString());
            string payNumber = "";
            //微信支付,统一下单(与微信支付订单一样)
            weixin_unified_order unifiedOrder = new weixin_unified_order();
            //int total_fee = int.Parse(((orderform.money + orderform.freight) * 100).To<double>().ToString("F0"));
            int total_fee = 0;

            unifiedOrder.nonce_str        = Sys.getRandomCode(26);
            unifiedOrder.body             = seedName + "(" + appcode + "-Applet)";
            unifiedOrder.out_trade_no     = payNumber;//商户单号使用支付单号
            unifiedOrder.total_fee        = total_fee;
            unifiedOrder.spbill_create_ip = Util.GetUserIp();
            unifiedOrder.notify_url       = notifyUrl; //回调
            unifiedOrder.trade_type       = "JSAPI";
            unifiedOrder.openid           = openid;

            //获得统一下单返回的支付单信息
            weixin_unified_order_return unifiedOrderReturn = weixinPay.UnifiedOrder(unifiedOrder);

            LogHelper.Info("统一下单返回的支付单信息:" + Newtonsoft.Json.JsonConvert.SerializeObject(unifiedOrderReturn));
            if ("SUCCESS".Equals(unifiedOrderReturn.return_code))
            {
                //准备获取支付信息的签名参数
                Hashtable parameter = new Hashtable();
                parameter.Add("appId", unifiedOrderReturn.appid);
                parameter.Add("timeStamp", Util.getLongTime().ToString());
                parameter.Add("nonceStr", unifiedOrderReturn.nonce_str);
                parameter.Add("package", "prepay_id=" + unifiedOrderReturn.prepay_id);
                parameter.Add("signType", "MD5");
                string           paysign       = weixinPay.Sign(parameter);
                weixin_jsapi_pay weixinPayInfo = new weixin_jsapi_pay()
                {
                    timestamp = Util.getLongTime(),
                    nonceStr  = unifiedOrderReturn.nonce_str,
                    package   = "prepay_id=" + unifiedOrderReturn.prepay_id,
                    signType  = "MD5",
                    paySign   = paysign,
                    is_pay    = false
                };
                LogHelper.Info("获得了统一下单数据:" + Newtonsoft.Json.JsonConvert.SerializeObject(weixinPayInfo));

                return(weixinPayInfo);
            }
            else
            {
                ////删除订单
                //orderform.isdelete = 1;
                //orderform.remarks = "小程序统一下单失败,自动删除";
                //db.Update("orderform", orderform, "id=" + orderform_id);
            }
            return(null);
        }