/// <summary>
        ///     创建字符串二维码
        ///     永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。
        /// </summary>
        /// <param name="value">值(长度为1~64)</param>
        /// <returns></returns>
        public QRCodeCreateApiResult CreateByStringValue(string value)
        {
            if ((value.Length > 64) || (value.Length < 1))
            {
                throw new ApiArgumentException("值长度只支持1~64", "value");
            }
            //获取api请求url
            var url = GetAccessApiUrl("create", ApiName);
            QRCodeCreateApiResult result = null;
            var model = new
            {
                action_name = "QR_LIMIT_STR_SCENE",
                action_info = new
                {
                    scene = new { scene_str = value }
                }
            };

            result = Post <QRCodeCreateApiResult>(url, model);
            WeChatFrameworkFuncsManager.Current.InvokeFunc(WeChatFrameworkFuncTypes.APIFunc_QRCodeApi_Create,
                                                           new WeChatApiCallbackFuncArgInfo
            {
                Api  = this,
                Data = result
            });
            return(result);
        }
        /// <summary>
        ///     创建数值二维码
        ///     1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景
        ///     2、永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。
        /// </summary>
        /// <param name="value">值(0~2592000)</param>
        /// <param name="expireSeconds">过期时间,默认为30天(为0表示永久)</param>
        /// <returns></returns>
        public QRCodeCreateApiResult CreateByNumberValue(int value, int expireSeconds = 2592000)
        {
            if ((value > 100000) || (value < 1))
            {
                throw new ApiArgumentException("值只支持1~100000", "value");
            }
            if (expireSeconds > 2592000)
            {
                throw new ApiArgumentException("过期时间不得大于2592000秒(即30天)", "expireSeconds");
            }
            //获取api请求url
            var url = GetAccessApiUrl("create", ApiName);
            QRCodeCreateApiResult result = null;

            if (expireSeconds <= 0)
            {
                var model = new
                {
                    action_name = "QR_LIMIT_SCENE",
                    action_info = new
                    {
                        scene = new { scene_id = value }
                    }
                };
                result = Post <QRCodeCreateApiResult>(url, model);
            }
            else
            {
                var model = new
                {
                    expire_seconds = expireSeconds,
                    action_name    = "QR_SCENE",
                    action_info    = new
                    {
                        scene = new { scene_id = value }
                    }
                };
                result = Post <QRCodeCreateApiResult>(url, model);
            }
            WeChatFrameworkFuncsManager.Current.InvokeFunc(WeChatFrameworkFuncTypes.APIFunc_QRCodeApi_Create,
                                                           new WeChatApiCallbackFuncArgInfo
            {
                Api  = this,
                Data = result
            });
            return(result);
        }
        /// <summary>
        ///     创建字符串二维码
        ///     永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。
        /// </summary>
        /// <param name="value">值(长度为1~64)</param>
        /// <returns></returns>
        public QRCodeCreateApiResult CreateByStringValue(string value)
        {
            if ((value.Length > 64) || (value.Length < 1))
            {
                throw new ApiArgumentException("值长度只支持1~64", "value");
            }
            //获取api请求url
            var url = GetAccessApiUrl("create", ApiName);
            QRCodeCreateApiResult result = null;
            var model = new
            {
                action_name = "QR_LIMIT_STR_SCENE",
                action_info = new
                {
                    scene = new { scene_str = value }
                }
            };

            return(Post <QRCodeCreateApiResult>(url, model));
        }
        /// <summary>
        ///     创建数值二维码
        ///     1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景
        ///     2、永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。
        /// </summary>
        /// <param name="value">值(0~2592000)</param>
        /// <param name="expireSeconds">过期时间,默认为30天(为0表示永久)</param>
        /// <returns></returns>
        public QRCodeCreateApiResult CreateByNumberValue(int value, int expireSeconds = 2592000)
        {
            if ((value > 100000) || (value < 1))
            {
                throw new ApiArgumentException("值只支持1~100000", "value");
            }
            if (expireSeconds > 2592000)
            {
                throw new ApiArgumentException("过期时间不得大于2592000秒(即30天)", "expireSeconds");
            }
            //获取api请求url
            var url = GetAccessApiUrl("create", ApiName);
            QRCodeCreateApiResult result = null;

            if (expireSeconds <= 0)
            {
                var model = new
                {
                    action_name = "QR_LIMIT_SCENE",
                    action_info = new
                    {
                        scene = new { scene_id = value }
                    }
                };
                result = Post <QRCodeCreateApiResult>(url, model);
            }
            else
            {
                var model = new
                {
                    expire_seconds = expireSeconds,
                    action_name    = "QR_SCENE",
                    action_info    = new
                    {
                        scene = new { scene_id = value }
                    }
                };
                result = Post <QRCodeCreateApiResult>(url, model);
            }
            return(result);
        }