zoukankan      html  css  js  c++  java
  • C# 微信开发-----微信会员卡(一)

    这是微信的官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025283,能看懂的朋友就请不要往下看了,我是看不懂的。我通过网上找到的资料来进行开发的;

    第一步:先看官方文档的接口是怎么说的

    这是重点,微信的都是以这种方式来请求的 

    HTTP请求方式: POSTURL:https://api.weixin.qq.com/card/create?access_token=ACCESS_TOKEN

    其次就是拼接他的POST数据很长一篇

    POST数据示例:
    
    
    {
        "card": {
            "card_type": "MEMBER_CARD",
            "member_card": {
                "background_pic_url": "https://mmbiz.qlogo.cn/mmbiz/",
                "base_info": {
                    "logo_url": "http://mmbiz.qpic.cn/mmbiz/iaL1LJM1mF9aRKPZ/0",
                    "brand_name": "海底捞",
                    "code_type": "CODE_TYPE_TEXT",
                    "title": "海底捞会员卡",
                    "color": "Color010",
                    "notice": "使用时向服务员出示此券",
                    "service_phone": "020-88888888",
                    "description": "不可与其他优惠同享",
                    "date_info": {
                        "type": "DATE_TYPE_PERMANENT"
                    },
                    "sku": {
                        "quantity": 50000000
                    },
                    "get_limit": 3,
                    "use_custom_code": false,
                    "can_give_friend": true,
                    "location_id_list": [
                        123,
                        12321
                    ],
                    "custom_url_name": "立即使用",
                    "custom_url": "http://weixin.qq.com",
                    "custom_url_sub_title": "6个汉字tips",
                    "promotion_url_name": "营销入口1",
                    "promotion_url": "http://www.qq.com",
                    "need_push_on_view": true
                },
                 "advanced_info": {
                   "use_condition": {
                       "accept_category": "鞋类",
                       "reject_category": "阿迪达斯",
                       "can_use_with_other_discount": true
                   },
                 "abstract": {
                       "abstract": "微信餐厅推出多种新季菜品,期待您的光临",
                       "icon_url_list": [
                           "http://mmbiz.qpic.cn/mmbiz/p98FjXy8LacgHxp3sJ3vn97bGLz0ib0Sfz1bjiaoOYA027iasqSG0sj
      piby4vce3AtaPu6cIhBHkt6IjlkY9YnDsfw/0"
                       ]
                   },
                   "text_image_list": [
                       {
                           "image_url": "http://mmbiz.qpic.cn/mmbiz/p98FjXy8LacgHxp3sJ3vn97bGLz0ib0Sfz1bjiaoOYA027iasqSG0sjpiby4vce3AtaPu6cIhBHkt6IjlkY9YnDsfw/0",
                           "text": "此菜品精选食材,以独特的烹饪方法,最大程度地刺激食 客的味蕾"
                       },
                       {
                           "image_url": "http://mmbiz.qpic.cn/mmbiz/p98FjXy8LacgHxp3sJ3vn97bGLz0ib0Sfz1bjiaoOYA027iasqSG0sj piby4vce3AtaPu6cIhBHkt6IjlkY9YnDsfw/0",
                           "text": "此菜品迎合大众口味,老少皆宜,营养均衡"
                       }
                   ],
                   "time_limit": [
                       {
                           "type": "MONDAY",
                           "begin_hour":0,
                           "end_hour":10,
                           "begin_minute":10,
                           "end_minute":59
                       },
                       {
                           "type": "HOLIDAY"
                       }
                   ],
                   "business_service": [
                       "BIZ_SERVICE_FREE_WIFI",
                       "BIZ_SERVICE_WITH_PET",
                       "BIZ_SERVICE_FREE_PARK",
                       "BIZ_SERVICE_DELIVER"
                   ]
               },
                "supply_bonus": true,
                "supply_balance": false,
                "prerogative": "test_prerogative",
                "auto_activate": true,
                "custom_field1": {
                    "name_type": "FIELD_NAME_TYPE_LEVEL",
                    "url": "http://www.qq.com"
                },
                "activate_url": "http://www.qq.com",
                "custom_cell1": {
                    "name": "使用入口2",
                    "tips": "激活后显示",
                    "url": "http://www.qq.com"
                },
                "bonus_rule": {
                    "cost_money_unit": 100,
                    "increase_bonus": 1,
                    "max_increase_bonus": 200,
                    "init_increase_bonus": 10,
                    "cost_bonus_unit": 5,
                    "reduce_money": 100,
                    "least_money_to_use_bonus": 1000,
                    "max_reduce_bonus": 50
                },
                "discount": 10
            }
        }
    }

    看着头大了都,有没得Demo。所以网上找的资料直接使用。

    我是使用的一般处理程序文件来创建的

    具体代码会贴出来

    先看如何上传临时素材

    public void Wx_UploadImg()
            {
                string result = "0";//
    
                try
                {
                    string getAuthorize = GetAuthorize();
                    string access_token = "";
                    string urlPath = "";
                    string imgName = "";
    
                    if (getAuthorize != "")
                    {
                        getAuthorize = "[" + getAuthorize + "]";
    
                        Newtonsoft.Json.Linq.JArray javascript = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(getAuthorize);
                        Newtonsoft.Json.Linq.JObject obj = (Newtonsoft.Json.Linq.JObject)javascript[0];
    
                        if (obj["access_token"] != null && obj["access_token"].ToString() != "")
                        {
                            access_token = obj["access_token"].ToString();//获取微信token
                        }
                        if (!string.IsNullOrEmpty(access_token))
                        {
                            string url = string.Format("https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={0}&type={1}", access_token, "image");
                            #region base64转成图片
                            string logoImg = !string.IsNullOrEmpty(Request["imgInfo"]) ? Request["imgInfo"].ToString() : "";//图片base64码
                            string imgType = !string.IsNullOrEmpty(Request["imgType"]) ? Request["imgType"].ToString() : "";//LogoUrl表示会员卡logo CardCoverUrl表示会员卡图片
                            if (!string.IsNullOrEmpty(logoImg))
                            {
                                string[] ddLen = logoImg.Split(',');
                                var bytes = Convert.FromBase64String(ddLen[1].ToString());
                                if (imgType == "LogoUrl")
                                {
                                    imgName = "/images/MerchantLogo.jpg";
                                    urlPath = HttpRuntime.AppDomainAppPath.ToString() + imgName;//会员卡的logo(图片存储到服务器的物理地址路径)
                                }
                                if (imgType == "CardCoverUrl")
                                {
                                    imgName = "/images/MemCover.jpg";
                                    urlPath = HttpRuntime.AppDomainAppPath.ToString() + imgName;//会员卡的卡面图片(图片存储到服务器的物理地址路径)
                                }
    
                                using (var imageFile = new FileStream(urlPath, FileMode.Create))
                                {
                                    imageFile.Write(bytes, 0, bytes.Length);
                                    imageFile.Flush();
                                }
                                #endregion
                                string resultUpload = HttpUploadFile(url, urlPath, bytes);//上传临时图片素材
                                resultUpload = "[" + resultUpload + "]";
    
                                Newtonsoft.Json.Linq.JArray javascript1 = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(resultUpload);
                                Newtonsoft.Json.Linq.JObject obj1 = (Newtonsoft.Json.Linq.JObject)javascript1[0];
                                if (obj1["url"] != null && obj1["url"].ToString() != "")
                                {
                                    string imgUrl = obj1["url"].ToString();
                                    string[] tmp = imgUrl.Split('?');
                                    result = imgName;
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogError(ex);
                    result = "0";
                }
                Context.Response.Write(result);
            }


    #region 上传微信临时素材
            public static string HttpUploadFile(string url, string path, byte[] bf)
            {
                return HttpUploadPhoto(url, path, bf);
            }
            public static string HttpUploadPhoto(string url, string path, byte[] bf)
            {
                HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                CookieContainer cookieContainer = new CookieContainer();
                request.CookieContainer = cookieContainer;
                request.AllowAutoRedirect = true;
                request.Method = "POST";
                string boundary = DateTime.Now.Ticks.ToString("X"); // 随机分隔线
                request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;
                byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("
    --" + boundary + "
    ");
                byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("
    --" + boundary + "--
    ");
                int pos = path.LastIndexOf("\");
                string fileName = path.Substring(pos + 1);
                //请求头部信息 
                StringBuilder sbHeader = new StringBuilder(string.Format("Content-Disposition:form-data;name="media";filename="{0}"
    Content-Type:application/octet-stream
    
    ", fileName));
                byte[] postHeaderBytes = Encoding.UTF8.GetBytes(sbHeader.ToString());
                Stream postStream = request.GetRequestStream();
                postStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length);
                postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);
                postStream.Write(bf, 0, bf.Length);
                postStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
                postStream.Close();
                //发送请求并获取相应回应数据
                HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                Stream instream = response.GetResponseStream();
                StreamReader sr = new StreamReader(instream, Encoding.UTF8);
                string content = sr.ReadToEnd();
                return content;
            }
            #endregion
    
    
    
     
     //网页授权access_token
            public string GetAuthorize()
            {
                string strWeiXinAppID = "xxxxxx";
                string strWeiXinAppSecret = "xxxxxxxx";
                if (strWeiXinAppID != null && strWeiXinAppSecret != null)
                {
                    string templateUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}";
                    templateUrl = string.Format(templateUrl, strWeiXinAppID, strWeiXinAppSecret);
                    HttpRequestHelper hrh = new HttpRequestHelper();
                    return hrh.Reqeust(templateUrl);
                }
                else
                {
                    return "";
                }
            }

    post请求使用封装文件

    HttpRequestHelper.cs

    using System;
    using System.Collections.Generic;
    using System.Net;
    using System.Text;
    using System.Web;
    using System.Security.Cryptography.X509Certificates;
    
    namespace Chain.Wechat
    {
        public class HttpRequestHelper
        {
            public string Reqeust(string url)
            {
                System.Net.HttpWebRequest request;
                // 创建一个HTTP请求
                request = (System.Net.HttpWebRequest)WebRequest.Create(url);
                request.Method="GET";
                System.Net.HttpWebResponse response;
                response = (System.Net.HttpWebResponse)request.GetResponse();
                System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8);
                string responseText = reader.ReadToEnd();
                reader.Close();
                return responseText;
            }
            public string Reqeust(string url, string postText, bool isUseCert, string SSLCERT_PATH, string SSLCERT_PASSWORD)
            {
                System.Net.HttpWebRequest request;
                request = (System.Net.HttpWebRequest)WebRequest.Create(url);
                //是否使用证书
                if (isUseCert)
                {
    
                    string path = HttpContext.Current.Request.PhysicalApplicationPath + SSLCERT_PATH;
                    X509Certificate2 cert = new X509Certificate2(path, SSLCERT_PASSWORD,X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);            
                    request.ClientCertificates.Add(cert);
                }
                //Post请求方式
                request.Method = "POST";
                // 内容类型
                request.ContentType = "application/x-www-form-urlencoded";
                //// 参数经过URL编码
                //string paraUrlCoded = System.Web.HttpUtility.UrlEncode(postText);
                byte[] payload;
                //将URL编码后的字符串转化为字节
                payload = System.Text.Encoding.UTF8.GetBytes(postText);
                //设置请求的 ContentLength 
                request.ContentLength = payload.Length;
                //获得请 求流
                System.IO.Stream writer = request.GetRequestStream();
                //将请求参数写入流
                writer.Write(payload, 0, payload.Length);
                // 关闭请求流
                writer.Close();
                System.Net.HttpWebResponse response;
                // 获得响应流
                response = (System.Net.HttpWebResponse)request.GetResponse();
                System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8);
                string responseText = reader.ReadToEnd();
                reader.Close();
                return responseText;
            }
            public string Reqeust(string url, string postText)
            {
                System.Net.HttpWebRequest request;
                request = (System.Net.HttpWebRequest)WebRequest.Create(url);
                //Post请求方式
                request.Method = "POST";
                // 内容类型
                request.ContentType = "application/x-www-form-urlencoded";
                //// 参数经过URL编码
                //string paraUrlCoded = System.Web.HttpUtility.UrlEncode(postText);
                byte[] payload;
                //将URL编码后的字符串转化为字节
                payload = System.Text.Encoding.UTF8.GetBytes(postText);
                //设置请求的 ContentLength 
                request.ContentLength = payload.Length;
                //获得请 求流
                System.IO.Stream writer = request.GetRequestStream();
                //将请求参数写入流
                writer.Write(payload, 0, payload.Length);
                // 关闭请求流
                writer.Close();
                System.Net.HttpWebResponse response;
                // 获得响应流
                response = (System.Net.HttpWebResponse)request.GetResponse();
                System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8);
                string responseText = reader.ReadToEnd();
                reader.Close();
                return responseText;
            }
    
            public string ReqeustPost(string url)
            {
                System.Net.HttpWebRequest request;
                // 创建一个HTTP请求
                request = (System.Net.HttpWebRequest)WebRequest.Create(url);
                request.Method = "POST";
                System.Net.HttpWebResponse response;
                response = (System.Net.HttpWebResponse)request.GetResponse();
                System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8);
                string responseText = reader.ReadToEnd();
                reader.Close();
                return responseText;
            }
        }
    }

    创建会员卡

    #region 创建会员卡
            public void CreateWxMemCard()
            {
                string flag = "0";
                try
                {
                    string brand_name = !string.IsNullOrEmpty(Request["Wxbrand_name"]) ? Request["Wxbrand_name"].ToString() : "";
                    string title = !string.IsNullOrEmpty(Request["Wxtitle"]) ? Request["Wxtitle"].ToString() : "";
                    string prerogative = !string.IsNullOrEmpty(Request["Wxprerogative"]) ? Request["Wxprerogative"].ToString() : "";
                    string description = !string.IsNullOrEmpty(Request["Wxdescription"]) ? Request["Wxdescription"].ToString() : "";
                    string cardLogo = !string.IsNullOrEmpty(Request["WxMemCardLog"]) ? Request["WxMemCardLog"].ToString() : "";
                    string cardCover = !string.IsNullOrEmpty(Request["WxMemCardCover"]) ? Request["WxMemCardCover"].ToString() : "";
    
                    string getAuthorize = GetAuthorize();
                        string access_token = "";
    
                        if (getAuthorize != "")
                        {
                            getAuthorize = "[" + getAuthorize + "]";
    
                            Newtonsoft.Json.Linq.JArray javascript = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(getAuthorize);
                            Newtonsoft.Json.Linq.JObject obj = (Newtonsoft.Json.Linq.JObject)javascript[0];
    
                            if (obj["access_token"] != null && obj["access_token"].ToString() != "")
                            {
                                access_token = obj["access_token"].ToString();
                            }
                        }
                        string url_Menu_Create = "https://api.weixin.qq.com/card/create?access_token=" + access_token;
    
    
                        string postData = CreateMenuDate(brand_name, title, prerogative, description);
                        string result = PostWebRequest(url_Menu_Create, postData);
                        if (!string.IsNullOrEmpty(result))
                        {
                            result = "[" + result + "]";
                            string cardId = "";
                            Newtonsoft.Json.Linq.JArray cardResult = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(result);
                            Newtonsoft.Json.Linq.JObject cardObj = (Newtonsoft.Json.Linq.JObject)cardResult[0];
    
                            if (cardObj["errmsg"] != null)
                            {
                                if (!string.IsNullOrEmpty(cardObj["errmsg"].ToString()))
                                {
                                    if (cardObj["errmsg"].ToString() == "ok")
                                    {
                                        cardId = cardObj["card_id"].ToString();//微信卡券ID
    
                                        #region 获取二维码数据
                                        string strQRcode = WxCreateQRcode(access_token, cardId);
                                        string wxQRcode = "";
                                        if (strQRcode != "-1" && strQRcode != "0")
                                        {
                                            wxQRcode = strQRcode;
                                        }
                                        #endregion
                                        #region 保存到数据库
                                        Chain.Model.WxMemCard modelWxMC = new Chain.Model.WxMemCard();
                                        Chain.BLL.WxMemCard bllWxMC = new Chain.BLL.WxMemCard();
    
                                        modelWxMC.WxMemCardLogo = cardLogo;
                                        modelWxMC.WxMemCardName = brand_name;
                                        modelWxMC.WxMemCardTitle = title;
                                        modelWxMC.WxMemCardCover = cardCover;
                                        modelWxMC.WxMemCardPrivilege = prerogative;
                                        modelWxMC.WxMemCardUserNotice = description;
                                        modelWxMC.WxMemCardCreateTime = DateTime.Now;
                                        modelWxMC.WxMemCardUpDateTime = DateTime.Now;
                                        modelWxMC.WxMemCardQRURL = wxQRcode;
                                        modelWxMC.CardID = cardId;
                                        modelWxMC.AccessToken = access_token;
                                        flag = bllWxMC.Add(modelWxMC) > 0 ? "1" : "-1";
                                        #endregion
                         
    #region 添加激活时的自定义字段
                          //下章在讲
                          #endregion

    } else { flag = "-1"; } } } } } catch (Exception ex) { flag = "-1"; LogError(ex); } Context.Response.Write(flag); } /// <summary> /// 构造Json参数和值 /// </summary> /// <returns></returns> public string CreateMenuDate(string brand_name, string title, string prerogative, string description) { string postData = "{"; postData += ""card": {"; postData += ""card_type": "MEMBER_CARD","; postData += ""member_card": {"; postData += ""background_pic_url": "http://mmbiz.qpic.cn/mmbiz_png/ySO19CiarcdMbs3ckFC0icAPnic8XMjWH1eB8vNuu8n7uhW1F5mkw5ZIiaEUtRlQ5RVty6MkJV6MQbYmXJTnpOCrCA/0","; postData += ""base_info": {"; postData += ""logo_url": "http://mmbiz.qpic.cn/mmbiz_png/ySO19CiarcdPa3tkCvgclHiciacQEqDyb0LibyNnc9st3cDsLLxEZ7YDqMRfbB6DJwbxuFZOWAuELqcC7AHJ3pBdoA/0","; postData += ""brand_name": "" + brand_name + "","; postData += ""code_type": "CODE_TYPE_BARCODE","; postData += ""title": "" + title + "","; postData += ""color": "Color010","; postData += ""notice": "使用时向服务员出示此会员卡","; postData += ""service_phone": "0335-5300544","; postData += ""description": "" + description + "","; postData += ""date_info": {"; postData += ""type": "DATE_TYPE_PERMANENT""; postData += "},"; postData += ""sku": {"; postData += ""quantity": 100000000"; postData += "},"; postData += ""get_limit": 1,"; postData += ""use_custom_code": false,"; postData += ""can_give_friend": true,"; postData += ""custom_url_name": "会员卡中心","; postData += ""custom_url": "http://www.zhiluo.cc/mobile/member/login.aspx/""; postData += "},"; postData += ""supply_bonus": false,"; postData += ""supply_balance": false,"; postData += ""prerogative": "" + prerogative + "","; postData += ""wx_activate": true,"; postData += ""wx_activate_after_submit": true,"; postData += ""wx_activate_after_submit_url": "http://www.baidu.com""; postData += "}"; postData += "}"; postData += "}"; return postData; } /// <summary> /// 发送Post请求到微信端 /// </summary> /// <param name="postUrl">请求的路径</param> /// <param name="paramData">发送的数据</param> /// <returns></returns> public string PostWebRequest(string postUrl, string paramData) { string ret = string.Empty; try { byte[] byteArray = Encoding.UTF8.GetBytes(paramData); //转化                 HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl)); webReq.Method = "POST"; webReq.ContentType = "application/json"; webReq.ContentLength = byteArray.Length; Stream newStream = webReq.GetRequestStream(); newStream.Write(byteArray, 0, byteArray.Length);//写入参数                 newStream.Close(); HttpWebResponse response = (HttpWebResponse)webReq.GetResponse(); StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); ret = sr.ReadToEnd(); sr.Close(); response.Close(); newStream.Close(); } catch (Exception ex) { LogError(ex); } return ret; } #endregion

    删除微信会员卡券

    #region 删除微信会员卡券
            public void DelWxMemCard()
            {
                int flag = 0;
                string getAuthorize = GetAuthorize();
                string access_token = "";
    
                try
                {
                    if (getAuthorize != "")
                    {
                        getAuthorize = "[" + getAuthorize + "]";
    
                        Newtonsoft.Json.Linq.JArray javascript = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(getAuthorize);
                        Newtonsoft.Json.Linq.JObject obj = (Newtonsoft.Json.Linq.JObject)javascript[0];
    
                        if (obj["access_token"] != null && obj["access_token"].ToString() != "")
                        {
                            access_token = obj["access_token"].ToString();         
                        }
                    }
                    string postUrl = "https://api.weixin.qq.com/card/delete?access_token=" + access_token;
    
                    string cardId = "prXT7wZYBhzfTc8xv7O5wKbRe44w";
                    string postData = "{"card_id":"" + cardId + ""}";
                    string result = PostWebRequest(postUrl, postData);
    
                    if (!string.IsNullOrEmpty(result))
                    {
                        result = "[" + result + "]";
                        Newtonsoft.Json.Linq.JArray cardResult = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(result);
                        Newtonsoft.Json.Linq.JObject cardObj = (Newtonsoft.Json.Linq.JObject)cardResult[0];
    
                        if (cardObj["errmsg"] != null && cardObj["errmsg"].ToString() != "")
                        {
                            if (cardObj["errmsg"].ToString() == "ok")
                            {
                                flag = 1;
                            }
                            else
                            {
                                flag = -1;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogError(ex);
                    flag = -1;
                }
                Context.Response.Write(flag);
            }
    
    
            #endregion

    查询卡券列表

    #region 查询卡券列表 参考:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025272&anchor=4
            public void GetWxMemCardList()
            {
                int flag = 0;
                string getAuthorize = GetAuthorize();
                string access_token = "";
    
                try
                {
                    if (getAuthorize != "")
                    {
                        getAuthorize = "[" + getAuthorize + "]";
    
                        Newtonsoft.Json.Linq.JArray javascript = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(getAuthorize);
                        Newtonsoft.Json.Linq.JObject obj = (Newtonsoft.Json.Linq.JObject)javascript[0];
    
                        if (obj["access_token"] != null && obj["access_token"].ToString() != "")
                        {
                            access_token = obj["access_token"].ToString();
                        }
                    }
                    string postUrl = "https://api.weixin.qq.com/card/batchget?access_token=" + access_token;
    
                    string postData = "{"offset":"0","count":"10","status_list":["CARD_STATUS_VERIFY_OK","CARD_STATUS_DISPATCH"]}";
                    string result = PostWebRequest(postUrl, postData);
    
                    if (!string.IsNullOrEmpty(result))
                    {
                        result = "[" + result + "]";
                        Newtonsoft.Json.Linq.JArray cardResult = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(result);
                        Newtonsoft.Json.Linq.JObject cardObj = (Newtonsoft.Json.Linq.JObject)cardResult[0];
                        //card_id_list    卡券ID列表。
                    }
                }
                catch (Exception ex)
                {
                    LogError(ex);
                    flag = -1;
                }
                Context.Response.Write(flag);
            }
            #endregion

    把卡券生成二维码

    #region 通过生成二维码让会员来领取微信会员卡 参考:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025062
            public void WxCreateQRcode()
            {
                string flag = "0";
                string getAuthorize = GetAuthorize();
                string access_token = "";
    
                try
                {
                    if (getAuthorize != "")
                    {
                        getAuthorize = "[" + getAuthorize + "]";
    
                        Newtonsoft.Json.Linq.JArray javascript = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(getAuthorize);
                        Newtonsoft.Json.Linq.JObject obj = (Newtonsoft.Json.Linq.JObject)javascript[0];
    
                        if (obj["access_token"] != null && obj["access_token"].ToString() != "")
                        {
                            access_token = obj["access_token"].ToString();
                        }
                    }
                    string postUrl = "https://api.weixin.qq.com/card/qrcode/create?access_token=" + access_token;
    
                    string postData = "{";
                    postData += ""action_name":"QR_CARD",";
                    postData += ""expire_seconds":"",";
                    postData += ""action_info":{";
                    postData += ""card": {";
    
                    postData += ""card_id":"prXT7wb2qAGJOLAkAuacfWtwBss0",";
                    postData += ""code":"",";
                    postData += ""openid":"",";
                    postData += ""is_unique_code":false,";
                    postData += ""outer_str":"12b"";
                    postData += "}";
                    postData += "}";
                    postData += "}";
                    string result = PostWebRequest(postUrl, postData);
    
                    if (!string.IsNullOrEmpty(result))
                    {
                        result = "[" + result + "]";
                        Newtonsoft.Json.Linq.JArray cardResult = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(result);
                        Newtonsoft.Json.Linq.JObject cardObj = (Newtonsoft.Json.Linq.JObject)cardResult[0];
    
                        if (cardObj["errmsg"] != null && cardObj["errmsg"].ToString() != "")
                        {
                            if (cardObj["errmsg"].ToString() == "ok")
                            {
                                flag = cardObj["show_qrcode_url"].ToString();
                            }
                            else
                            {
                                flag = "-1";
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogError(ex);
                    flag = "-1";
                }
                Context.Response.Write(flag);
            }
            #endregion
    LogError(ex);这个是我封装的一个异常日志,你们复制过去了会报错,删了就是了,不影响的
  • 相关阅读:
    docker 数据卷 ---- 进阶篇
    docker 数据卷 ---- 基础篇
    python做基本的图像处理
    conv1d UpSampling1D aotoencoder 自编码代码摘录
    python daal test
    python dict 构造函数性能比较
    CNN autoencoder 进行异常检测——TODO,使用keras进行测试
    利用CNN进行流量识别 本质上就是将流量视作一个图像
    Deep Belief Network简介——本质上是在做逐层无监督学习,每次学习一层网络结构再逐步加深网络
    python pipe stdout 实现cat|grep 功能
  • 原文地址:https://www.cnblogs.com/LoveQin/p/10147798.html
Copyright © 2011-2022 走看看