Ejemplo n.º 1
0
        /// <summary>
        /// 第一种方式:创建卡券二维码图片进行投放
        /// </summary>
        /// <param name="appId">公众号appID</param>
        /// <param name="appSecret">公众号appSecret</param>
        /// <param name="cardId">卡券id</param>
        /// <param name="openId">指定领取者的openid,只有该用户能领取。bind_openid字段为true的卡券必须填写,非指定openid不必填写</param>
        /// <param name="code">卡券Code码,use_custom_code字段为true的卡券必须填写,非自定义code不必填写</param>
        /// <param name="isNeverExpires">是否绝不过期,True:是;False:会过期</param>
        /// <param name="validTime">当isNeverExpires为False时需要指定有效时间</param>
        /// <returns>二维码图片</returns>
        public static string ShowCardQrcode(string appId, string appSecret, string cardId, string openId = "", string code = "", bool isNeverExpires = true, int validTime = 1800)
        {
            if (validTime < 60 || validTime > 1800)
            {
                validTime = 1800;
            }

            string url = string.Format("https://api.weixin.qq.com/card/qrcode/create?access_token={0}", AccessToken.GetToken(appId, appSecret));

            var result = new ResultModels.CardQrcodeResult();

            if (isNeverExpires)
            {
                var obj = new
                {
                    action_name = "QR_CARD",
                    action_info = new
                    {
                        card = new
                        {
                            card_id        = cardId,
                            code           = code,
                            openid         = openId,
                            is_unique_code = false,
                            outer_id       = 1
                        }
                    }
                };

                result = WechatWebClient.Post <ResultModels.CardQrcodeResult>(url, JsonConvert.SerializeObject(obj));
            }
            else
            {
                var obj = new
                {
                    action_name    = "QR_CARD",
                    expire_seconds = validTime,
                    action_info    = new
                    {
                        card = new
                        {
                            card_id        = cardId,
                            code           = code,
                            openid         = openId,
                            is_unique_code = false,
                            outer_id       = 1
                        }
                    }
                };

                result = WechatWebClient.Post <ResultModels.CardQrcodeResult>(url, JsonConvert.SerializeObject(obj));
            }

            return(string.Format("https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={0}", Uri.EscapeDataString(result.ticket)));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 第一种方式:创建卡券二维码图片进行投放
        /// </summary>
        /// <param name="appId">公众号appID</param>
        /// <param name="appSecret">公众号appSecret</param>
        /// <param name="cardId">卡券id</param>
        /// <param name="openId">指定领取者的openid,只有该用户能领取。bind_openid字段为true的卡券必须填写,非指定openid不必填写</param>
        /// <param name="code">卡券Code码,use_custom_code字段为true的卡券必须填写,非自定义code不必填写</param>
        /// <param name="isNeverExpires">是否绝不过期,True:是;False:会过期</param>
        /// <param name="validTime">当isNeverExpires为False时需要指定有效时间</param>
        /// <returns>二维码图片</returns>
        public static string ShowCardQrcode(string appId, string appSecret, string cardId, string openId = "", string code = "", bool isNeverExpires = true, int validTime = 1800)
        {
            if (validTime < 60 || validTime > 1800)
                validTime = 1800;

            string url = string.Format("https://api.weixin.qq.com/card/qrcode/create?access_token={0}", AccessToken.GetToken(appId, appSecret));

            var result = new ResultModels.CardQrcodeResult();

            if (isNeverExpires)
            {
                var obj = new
                {
                    action_name = "QR_CARD",
                    action_info = new
                    {
                        card = new
                        {
                            card_id = cardId,
                            code = code,
                            openid = openId,
                            is_unique_code = false,
                            outer_id = 1
                        }
                    }
                };

                result = WechatWebClient.Post<ResultModels.CardQrcodeResult>(url, JsonConvert.SerializeObject(obj));
            }
            else
            {
                var obj = new
                {
                    action_name = "QR_CARD",
                    expire_seconds = validTime,
                    action_info = new
                    {
                        card = new
                        {
                            card_id = cardId,
                            code = code,
                            openid = openId,
                            is_unique_code = false,
                            outer_id = 1
                        }
                    }
                };

                result = WechatWebClient.Post<ResultModels.CardQrcodeResult>(url, JsonConvert.SerializeObject(obj));
            }

            return string.Format("https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={0}", Uri.EscapeDataString(result.ticket));
        }