コード例 #1
0
        public void EditStock(int num, string cardid)
        {
            WXCardLogInfo wXCardLogInfo = context.WXCardLogInfo.FirstOrDefault((WXCardLogInfo d) => d.CardId == cardid);

            if (wXCardLogInfo != null)
            {
                string accessToken = GetAccessToken(wXCardLogInfo.AppId, wXCardLogInfo.AppSecret);
                if (!string.IsNullOrWhiteSpace(accessToken))
                {
                    CardDetailGetResultJson cardDetailGetResultJson = CardApi.CardDetailGet(accessToken, wXCardLogInfo.CardId, 10000);
                    if (cardDetailGetResultJson != null)
                    {
                        int num1 = num - cardDetailGetResultJson.card.general_coupon.base_info.sku.quantity;
                        if (num1 != 0)
                        {
                            WxJsonResult wxJsonResult = CardApi.ModifyStock(accessToken, wXCardLogInfo.CardId, (num1 > 0 ? num1 : 0), (num1 < 0 ? Math.Abs(num1) : 0), 10000);
                            if (wxJsonResult.errcode != ReturnCode.请求成功)
                            {
                                int num2 = (int)wxJsonResult.errcode;
                                Log.Error("微信同步修改卡券库存失败", new Exception(num2.ToString()));
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        public void Delete(long id)
        {
            WXCardLogInfo wXCardLogInfo = context.WXCardLogInfo.FirstOrDefault((WXCardLogInfo d) => d.Id == id);

            if (wXCardLogInfo != null)
            {
                string accessToken            = GetAccessToken(wXCardLogInfo.AppId, wXCardLogInfo.AppSecret);
                List <WXCardCodeLogInfo> list = (
                    from d in context.WXCardCodeLogInfo
                    where d.CardId == wXCardLogInfo.CardId
                    select d).ToList();
                foreach (WXCardCodeLogInfo wXCardCodeLogInfo in list)
                {
                    Consume(wXCardCodeLogInfo.Id);
                }
                context.WXCardLogInfo.Remove(wXCardLogInfo);
                CardDeleteResultJson cardDeleteResultJson = CardApi.CardDelete(accessToken, wXCardLogInfo.CardId, 10000);
                if (cardDeleteResultJson.errcode != ReturnCode.请求成功)
                {
                    int num = (int)cardDeleteResultJson.errcode;
                    Log.Error("微信同步删除卡券失败", new Exception(num.ToString()));
                }
                context.SaveChanges();
            }
        }
コード例 #3
0
        public WXSyncJSInfoByCard GetSyncWeiXin(long couponid, long couponcodeid, WXCardLogInfo.CouponTypeEnum couponType, string url)
        {
            WXSyncJSInfoByCard wXSyncJSInfo = null;
            bool              flag          = false;
            WXCardLogInfo     wXCardLogInfo = null;
            WXCardCodeLogInfo codeInfo      = null;

            wXCardLogInfo = Get(couponid, couponType);
            if (wXCardLogInfo != null)
            {
                int?auditStatus = wXCardLogInfo.AuditStatus;
                if ((auditStatus.GetValueOrDefault() != 1 ? false : auditStatus.HasValue))
                {
                    flag = true;
                }
            }
            if (flag)
            {
                codeInfo = GetCodeInfo(couponcodeid, couponType);
                if (codeInfo != null && codeInfo.CodeStatus != 0)
                {
                    flag = false;
                }
            }
            if (flag)
            {
                wXSyncJSInfo = GetWXSyncJSInfo(wXCardLogInfo.CardId, url);
            }
            return(wXSyncJSInfo);
        }
コード例 #4
0
        private WXSyncJSInfoByCard GetWXSyncJSInfo(string cardid, string url)
        {
            WXSyncJSInfoByCard wXSyncJSInfoByCard = null;

            if (!string.IsNullOrWhiteSpace(cardid))
            {
                WXCardLogInfo wXCardLogInfo = context.WXCardLogInfo.FirstOrDefault((WXCardLogInfo d) => d.CardId == cardid);
                if (wXCardLogInfo != null)
                {
                    string jSApiTicket = GetJSApiTicket(wXCardLogInfo.AppId, wXCardLogInfo.AppSecret);
                    if (string.IsNullOrWhiteSpace(jSApiTicket))
                    {
                        Log.Info("[Coupon]票据获取失败");
                    }
                    else
                    {
                        wXSyncJSInfoByCard = new WXSyncJSInfoByCard();
                        JSSDKHelper jSSDKHelper = new JSSDKHelper();
                        wXSyncJSInfoByCard.appid     = wXCardLogInfo.AppId;
                        wXSyncJSInfoByCard.apiticket = jSApiTicket;
                        wXSyncJSInfoByCard.timestamp = JSSDKHelper.GetTimestamp();
                        wXSyncJSInfoByCard.nonceStr  = JSSDKHelper.GetNoncestr();
                        wXSyncJSInfoByCard.signature = JSSDKHelper.GetSignature(wXSyncJSInfoByCard.apiticket, wXSyncJSInfoByCard.nonceStr, wXSyncJSInfoByCard.timestamp, url);
                    }
                }
            }
            return(wXSyncJSInfoByCard);
        }
コード例 #5
0
        private WXSyncJSInfoCardInfo MakeSyncWXJSInfo(string cardid, long couponRecordId, WXCardLogInfo.CouponTypeEnum couponType)
        {
            WXSyncJSInfoCardInfo wXSyncJSInfoCardInfo = null;

            if (!string.IsNullOrWhiteSpace(cardid))
            {
                WXCardLogInfo wXCardLogInfo = context.WXCardLogInfo.FirstOrDefault((WXCardLogInfo d) => d.CardId == cardid);
                if (wXCardLogInfo != null)
                {
                    string accessToken     = GetAccessToken(wXCardLogInfo.AppId, wXCardLogInfo.AppSecret);
                    string cardJSApiTicket = GetCardJSApiTicket(accessToken);
                    if (string.IsNullOrWhiteSpace(cardJSApiTicket))
                    {
                        Log.Info("[Coupon]票据获取失败");
                    }
                    else
                    {
                        wXSyncJSInfoCardInfo = new WXSyncJSInfoCardInfo();
                        int         num         = (int)SyncCouponRecordInfo(cardid, couponRecordId, couponType);
                        JSSDKHelper jSSDKHelper = new JSSDKHelper();
                        wXSyncJSInfoCardInfo.card_id   = cardid;
                        wXSyncJSInfoCardInfo.timestamp = JSSDKHelper.GetTimestamp();
                        wXSyncJSInfoCardInfo.nonce_str = "";
                        wXSyncJSInfoCardInfo.signature = JSSDKHelper.GetcardExtSign(
                            cardJSApiTicket,
                            wXSyncJSInfoCardInfo.timestamp,
                            wXSyncJSInfoCardInfo.card_id,
                            wXSyncJSInfoCardInfo.nonce_str);
                        wXSyncJSInfoCardInfo.outerid = num;
                    }
                }
            }
            return(wXSyncJSInfoCardInfo);
        }
コード例 #6
0
        public void Unavailable(string cardid, string code)
        {
            WXCardCodeLogInfo nullable = context.WXCardCodeLogInfo.FirstOrDefault((WXCardCodeLogInfo d) => (d.CardId == cardid) && (d.Code == code));

            if (nullable != null)
            {
                WXCardLogInfo wXCardLogInfo = context.WXCardLogInfo.FirstOrDefault((WXCardLogInfo d) => d.Id == nullable.CardLogId.Value);
                if (wXCardLogInfo != null)
                {
                    string accessToken = GetAccessToken(wXCardLogInfo.AppId, wXCardLogInfo.AppSecret);
                    if (!string.IsNullOrWhiteSpace(accessToken))
                    {
                        WxJsonResult wxJsonResult = CardApi.CardUnavailable(accessToken, nullable.Code, nullable.CardId, 10000);
                        if (wxJsonResult.errcode != ReturnCode.请求成功)
                        {
                            int num = (int)wxJsonResult.errcode;
                            Log.Error("微信同步修改卡券库存失败", new Exception(string.Concat(num.ToString(), ":", wxJsonResult.errmsg)));
                        }
                    }
                }
                nullable.CodeStatus = -1;
                nullable.UsedTime   = new DateTime?(DateTime.Now);
                context.SaveChanges();
            }
        }
コード例 #7
0
        /// <summary>
        /// 是否可以同步微信
        /// </summary>
        /// <param name="couponid"></param>
        /// <param name="couponcodeid"></param>
        /// <param name="couponType"></param>
        /// <param name="url"></param>
        /// <returns></returns>
        public WXSyncJSInfoByCard GetSyncWeiXin(long couponid, long couponcodeid, WXCardLogInfo.CouponTypeEnum couponType, string url)
        {
            WXSyncJSInfoByCard result      = null;
            bool              isNeedSyncWX = false;
            WXCardLogInfo     wxcardinfo   = null;
            WXCardCodeLogInfo wxcodeinfo   = null;

            wxcardinfo = Get(couponid, couponType);
            if (wxcardinfo != null)
            {
                if (wxcardinfo.AuditStatus == (int)WXCardLogInfo.AuditStatusEnum.Audited)
                {
                    isNeedSyncWX = true;
                }
            }
            if (isNeedSyncWX)
            {
                wxcodeinfo = GetCodeInfo(couponcodeid, couponType);
                if (wxcodeinfo != null)
                {
                    if (wxcodeinfo.CodeStatus != (int)WXCardCodeLogInfo.CodeStatusEnum.WaitReceive)
                    {
                        isNeedSyncWX = false;
                    }
                }
            }
            if (isNeedSyncWX)
            {
                result = GetWXSyncJSInfo(wxcardinfo.CardId, url);
            }

            return(result);
        }
コード例 #8
0
        public string GetCardReceiveUrl(string cardid, long couponRecordId, WXCardLogInfo.CouponTypeEnum couponType)
        {
            string str = "";

            if (!string.IsNullOrWhiteSpace(cardid))
            {
                WXCardLogInfo wXCardLogInfo = context.WXCardLogInfo.FirstOrDefault((WXCardLogInfo d) => d.CardId == cardid);
                if (wXCardLogInfo != null)
                {
                    string             accessToken        = GetAccessToken(wXCardLogInfo.AppId, wXCardLogInfo.AppSecret);
                    int                num                = (int)SyncCouponRecordInfo(cardid, couponRecordId, couponType);
                    CreateQRResultJson createQRResultJson = CardApi.CreateQR(accessToken, wXCardLogInfo.CardId);
                    if (createQRResultJson.errcode != ReturnCode.请求成功)
                    {
                        int num1 = (int)createQRResultJson.errcode;
                        Log.Info(string.Concat("[Coupon]", num1.ToString(), ":", createQRResultJson.errmsg));
                    }
                    else
                    {
                        str = createQRResultJson.url;
                    }
                }
            }
            return(str);
        }
コード例 #9
0
        public void Delete(string cardid)
        {
            WXCardLogInfo wXCardLogInfo = context.WXCardLogInfo.FirstOrDefault((WXCardLogInfo d) => d.CardId == cardid);

            if (wXCardLogInfo != null)
            {
                Delete(wXCardLogInfo.Id);
            }
        }
コード例 #10
0
        public void EditStock(int num, long id)
        {
            WXCardLogInfo wXCardLogInfo = context.WXCardLogInfo.FirstOrDefault((WXCardLogInfo d) => d.Id == id);

            if (wXCardLogInfo == null)
            {
                throw new HimallException("错误的数据编号");
            }
            EditStock(num, wXCardLogInfo.CardId);
        }
コード例 #11
0
        public void AddCoupon(CouponInfo info)
        {
            CanAddOrEditCoupon(info);
            var coupon = Context.ActiveMarketServiceInfo.FirstOrDefault(a => a.TypeId == MarketType.Coupon && a.ShopId == info.ShopId);

            if (coupon == null)
            {
                throw new HimallException("您没有订购此服务");
            }
            if (coupon.MarketServiceRecordInfo.Max(item => item.EndTime.Date) < info.EndTime)
            {
                throw new HimallException("结束日期已经超过购买优惠券服务的日期");
            }
            info.WXAuditStatus = 1;
            if (info.IsSyncWeiXin == 1)
            {
                info.WXAuditStatus = 0;
            }
            Context.CouponInfo.Add(info);
            Context.SaveChanges();

            #region  步微信
            if (info.IsSyncWeiXin == 1)
            {
                WXCardLogInfo wxdata = new WXCardLogInfo();
                wxdata.CardColor     = info.FormWXColor;
                wxdata.CardTitle     = info.FormWXCTit;
                wxdata.CardSubTitle  = info.FormWXCSubTit;
                wxdata.CouponType    = ThisCouponType;
                wxdata.CouponId      = info.Id;
                wxdata.ShopId        = info.ShopId;
                wxdata.ShopName      = info.ShopName;
                wxdata.ReduceCost    = (int)(info.Price * 100);
                wxdata.LeastCost     = (int)(info.OrderAmount * 100);
                wxdata.Quantity      = info.Num;
                wxdata.GetLimit      = info.PerMax;
                wxdata.DefaultDetail = info.Price.ToString("F2") + "元优惠券1张";
                wxdata.BeginTime     = info.StartTime.Date;
                wxdata.EndTime       = info.EndTime.AddDays(1).AddMinutes(-1);
                if (ser_wxcard.Add(wxdata))
                {
                    info.CardLogId = wxdata.Id;
                    Context.SaveChanges();
                }
                else
                {
                    Context.CouponInfo.Remove(info);
                    Context.SaveChanges();
                    throw new HimallException("同步微信卡券失败,请检查参数是否有错!");
                }
            }
            #endregion

            SaveCover(info);
        }
コード例 #12
0
        public string GetCardReceiveUrl(long id, long couponRecordId, WXCardLogInfo.CouponTypeEnum couponType)
        {
            string        cardId        = "";
            WXCardLogInfo wXCardLogInfo = context.WXCardLogInfo.FirstOrDefault((WXCardLogInfo d) => d.Id == id);

            if (wXCardLogInfo != null)
            {
                cardId = wXCardLogInfo.CardId;
            }
            return(GetCardReceiveUrl(cardId, couponRecordId, couponType));
        }
コード例 #13
0
        public void AddCoupon(CouponInfo info)
        {
            CanAddOrEditCoupon(info);
            ActiveMarketServiceInfo activeMarketServiceInfo = context.ActiveMarketServiceInfo.FirstOrDefault((ActiveMarketServiceInfo a) => (int)a.TypeId == 2 && a.ShopId == info.ShopId);

            if (activeMarketServiceInfo == null)
            {
                throw new HimallException("您没有订购此服务");
            }
            if (activeMarketServiceInfo.MarketServiceRecordInfo.Max <MarketServiceRecordInfo, DateTime>((MarketServiceRecordInfo item) => item.EndTime.Date) < info.EndTime)
            {
                throw new HimallException("结束日期不能大于订购的日期");
            }
            info.WXAuditStatus = 1;
            if (info.IsSyncWeiXin == 1)
            {
                info.WXAuditStatus = 0;
            }
            context.CouponInfo.Add(info);
            context.SaveChanges();
            if (info.IsSyncWeiXin == 1)
            {
                WXCardLogInfo wXCardLogInfo = new WXCardLogInfo()
                {
                    CardColor    = info.FormWXColor,
                    CardTitle    = info.FormWXCTit,
                    CardSubTitle = info.FormWXCSubTit,
                    CouponType   = new WXCardLogInfo.CouponTypeEnum?(ThisCouponType),
                    CouponId     = new long?(info.Id),
                    ShopId       = info.ShopId,
                    ShopName     = info.ShopName,
                    ReduceCost   = (int)(info.Price * new decimal(100)),
                    LeastCost    = (int)(info.OrderAmount * new decimal(100)),
                    Quantity     = info.Num,
                    GetLimit     = info.PerMax
                };
                decimal price = info.Price;
                wXCardLogInfo.DefaultDetail = string.Concat(price.ToString("F2"), "元优惠券1张");
                wXCardLogInfo.BeginTime     = info.StartTime.Date;
                DateTime dateTime = info.EndTime.AddDays(1);
                wXCardLogInfo.EndTime = dateTime.AddMinutes(-1);
                if (!ser_wxcard.Add(wXCardLogInfo))
                {
                    context.CouponInfo.Remove(info);
                    context.SaveChanges();
                    throw new HimallException("同步微信卡券失败,请检查参数是否有错!");
                }
                info.CardLogId = new long?(wXCardLogInfo.Id);
                context.SaveChanges();
            }
            SaveCover(info);
        }
コード例 #14
0
        // Methods
        public void AddCoupon(CouponInfo info)
        {
            this.CanAddOrEditCoupon(info);
            ActiveMarketServiceInfo info2 = base.Context.ActiveMarketServiceInfo.FirstOrDefault <ActiveMarketServiceInfo>(a => (((int)a.TypeId) == 2) && (a.ShopId == info.ShopId));

            if (info2 == null)
            {
                throw new HimallException("您没有订购此服务");
            }
            if (info2.MarketServiceRecordInfo.Max <MarketServiceRecordInfo, DateTime>(item => item.EndTime.Date) < info.EndTime)
            {
                throw new HimallException("结束日期已经超过购买优惠券服务的日期");
            }
            info.WXAuditStatus = 1;
            if (info.IsSyncWeiXin == 1)
            {
                info.WXAuditStatus = 0;
            }
            base.Context.CouponInfo.Add(info);
            base.Context.SaveChanges();
            if (info.IsSyncWeiXin == 1)
            {
                WXCardLogInfo info3 = new WXCardLogInfo
                {
                    CardColor     = info.FormWXColor,
                    CardTitle     = info.FormWXCTit,
                    CardSubTitle  = info.FormWXCSubTit,
                    CouponType    = new WXCardLogInfo.CouponTypeEnum?(this.ThisCouponType),
                    CouponId      = new long?(info.Id),
                    ShopId        = info.ShopId,
                    ShopName      = info.ShopName,
                    ReduceCost    = (int)(info.Price * 100M),
                    LeastCost     = (int)(info.OrderAmount * 100M),
                    Quantity      = info.Num,
                    GetLimit      = info.PerMax,
                    DefaultDetail = info.Price.ToString("F2") + "元优惠券1张",
                    BeginTime     = info.StartTime.Date,
                    EndTime       = info.EndTime.AddDays(1.0).AddMinutes(-1.0)
                };
                if (!this.ser_wxcard.Add(info3))
                {
                    base.Context.CouponInfo.Remove(info);
                    base.Context.SaveChanges();
                    throw new HimallException("同步微信卡券失败,请检查参数是否有错!");
                }
                info.CardLogId = new long?(info3.Id);
                base.Context.SaveChanges();
            }
            this.SaveCover(info);
        }
コード例 #15
0
        public void Add(ShopBonusInfo model, long shopid)
        {
            ShopBonusInfo shopBonusInfo = (
                from p in context.ShopBonusInfo
                where p.ShopId == shopid
                select p).FirstOrDefault();

            if (shopBonusInfo != null && !shopBonusInfo.IsInvalid && shopBonusInfo.DateEnd > DateTime.Now && shopBonusInfo.DateStart < DateTime.Now)
            {
                throw new HimallException("一个时间段只能新增一个随机红包");
            }
            DateTime dateTime  = model.DateEnd.AddHours(23);
            DateTime dateTime1 = dateTime.AddMinutes(59);

            model.DateEnd = dateTime1.AddSeconds(59);
            DateTime dateTime2 = model.BonusDateEnd.AddHours(23);
            DateTime dateTime3 = dateTime2.AddMinutes(59);

            model.BonusDateEnd = dateTime3.AddSeconds(59);
            model.ShopId       = shopid;
            model.IsInvalid    = false;
            model.ReceiveCount = new int?(0);
            model.QRPath       = "";
            model = context.ShopBonusInfo.Add(model);
            context.Configuration.ValidateOnSaveEnabled = false;
            context.SaveChanges();
            context.Configuration.ValidateOnSaveEnabled = false;
            context.SaveChanges();
            if (model.SynchronizeCard)
            {
                WXCardLogInfo wXCardLogInfo = new WXCardLogInfo()
                {
                    CardColor    = model.CardColor,
                    CardTitle    = model.CardTitle,
                    CardSubTitle = model.CardSubtitle,
                    CouponType   = new WXCardLogInfo.CouponTypeEnum?(ThisCouponType),
                    CouponId     = new long?(model.Id),
                    ShopId       = model.ShopId,
                    Quantity     = 0
                };
                string  str             = model.RandomAmountStart.ToString("F2");
                decimal randomAmountEnd = model.RandomAmountEnd;
                wXCardLogInfo.DefaultDetail = string.Concat(str, "元", randomAmountEnd.ToString("F2"), "元随机优惠券1张");
                wXCardLogInfo.LeastCost     = (model.UseState == ShopBonusInfo.UseStateType.None ? 0 : (int)(model.UsrStatePrice * new decimal(100)));
                wXCardLogInfo.BeginTime     = model.BonusDateStart.Date;
                DateTime dateTime4 = model.BonusDateEnd.AddDays(1);
                wXCardLogInfo.EndTime = dateTime4.AddMinutes(-1);
                Instance <IWXCardService> .Create.Add(wXCardLogInfo);
            }
        }
コード例 #16
0
        public void Event_Audit(string cardid, WXCardLogInfo.AuditStatusEnum auditstatus)
        {
            WXCardLogInfo nullable = context.WXCardLogInfo.FirstOrDefault((WXCardLogInfo d) => d.CardId == cardid);

            if (nullable != null)
            {
                WXCardLogInfo.CouponTypeEnum?couponType     = nullable.CouponType;
                WXCardLogInfo.CouponTypeEnum valueOrDefault = couponType.GetValueOrDefault();
                if (couponType.HasValue && valueOrDefault == WXCardLogInfo.CouponTypeEnum.Coupon && nullable.CouponId.HasValue)
                {
                    Instance <ICouponService> .Create.SyncWeixinCardAudit(nullable.CouponId.Value, cardid, auditstatus);
                }
                nullable.AuditStatus = (int)(auditstatus);
                context.SaveChanges();
            }
        }
コード例 #17
0
        public WXJSCardModel GetJSWeiXinCard(long couponid, long couponcodeid, WXCardLogInfo.CouponTypeEnum couponType)
        {
            WXJSCardModel wXJSCardModel = new WXJSCardModel()
            {
                cardId = "0"
            };
            bool              flag          = false;
            WXCardLogInfo     wXCardLogInfo = null;
            WXCardCodeLogInfo codeInfo      = null;

            wXCardLogInfo = Get(couponid, couponType);
            if (wXCardLogInfo != null)
            {
                int?auditStatus = wXCardLogInfo.AuditStatus;
                if ((auditStatus.GetValueOrDefault() != 1 ? false : auditStatus.HasValue))
                {
                    flag = true;
                }
            }
            if (flag)
            {
                codeInfo = GetCodeInfo(couponcodeid, couponType);
                if (codeInfo != null && codeInfo.CodeStatus != 0)
                {
                    flag = false;
                }
            }
            if (flag)
            {
                WXSyncJSInfoCardInfo wXSyncJSInfoCardInfo = MakeSyncWXJSInfo(wXCardLogInfo.CardId, couponcodeid, couponType);
                if (wXSyncJSInfoCardInfo != null)
                {
                    wXJSCardModel.cardId  = wXSyncJSInfoCardInfo.card_id;
                    wXJSCardModel.cardExt = new WXJSCardExtModel()
                    {
                        signature = wXSyncJSInfoCardInfo.signature,
                        timestamp = wXSyncJSInfoCardInfo.timestamp,
                        nonce_str = wXSyncJSInfoCardInfo.nonce_str,
                        outer_id  = wXSyncJSInfoCardInfo.outerid
                    };
                }
            }
            return(wXJSCardModel);
        }
コード例 #18
0
        /// <summary>
        /// 获取同步微信JS
        /// </summary>
        /// <param name="couponcodeid"></param>
        /// <param name="couponType"></param>
        /// <returns></returns>
        public WXJSCardModel GetJSWeiXinCard(long couponid, long couponcodeid, WXCardLogInfo.CouponTypeEnum couponType)
        {
            WXJSCardModel result = new WXJSCardModel();

            result.cardId = "0"; //默认不可同步
            bool              isNeedSyncWX = false;
            WXCardLogInfo     wxcardinfo   = null;
            WXCardCodeLogInfo wxcodeinfo   = null;

            wxcardinfo = Get(couponid, couponType);
            if (wxcardinfo != null)
            {
                if (wxcardinfo.AuditStatus == (int)WXCardLogInfo.AuditStatusEnum.Audited)
                {
                    isNeedSyncWX = true;
                }
            }
            if (isNeedSyncWX)
            {
                wxcodeinfo = GetCodeInfo(couponcodeid, couponType);
                if (wxcodeinfo != null)
                {
                    if (wxcodeinfo.CodeStatus != (int)WXCardCodeLogInfo.CodeStatusEnum.WaitReceive)
                    {
                        isNeedSyncWX = false;
                    }
                }
            }
            if (isNeedSyncWX)
            {
                var data = MakeSyncWXJSInfo(wxcardinfo.CardId, couponcodeid, couponType);
                if (data != null)
                {
                    result.cardId            = data.card_id;
                    result.cardExt           = new WXJSCardExtModel();
                    result.cardExt.signature = data.signature;
                    result.cardExt.timestamp = data.timestamp;
                    result.cardExt.nonce_str = data.nonce_str;
                    result.cardExt.outer_id  = data.outerid;
                }
            }
            return(result);
        }
コード例 #19
0
        public void Add(ShopBonusInfo model, long shopid)
        {
            var bonus = DbFactory.Default.Get <ShopBonusInfo>().Where(p => p.ShopId == shopid).FirstOrDefault();

            if (bonus != null && bonus.IsInvalid == false && bonus.DateEnd > DateTime.Now && bonus.DateStart < DateTime.Now)
            {
                throw new HimallException("一个时间段只能新增一个随机红包");
            }
            model.DateEnd      = model.DateEnd.AddHours(23).AddMinutes(59).AddSeconds(59);
            model.BonusDateEnd = model.BonusDateEnd.AddHours(23).AddMinutes(59).AddSeconds(59);
            model.ShopId       = shopid;
            model.IsInvalid    = false;
            model.ReceiveCount = 0;
            model.QRPath       = "";
            if (model.SynchronizeCard)
            {
                //微信卡券同步改为自动过审后有BUG,暂时默认优惠券添加就是同步状态成功的
                model.WXCardState = WXCardLogInfo.AuditStatusEnum.Audited.GetHashCode();
            }


            DbFactory.Default.Add(model);

            #region  步微信
            if (model.SynchronizeCard == true)
            {
                WXCardLogInfo wxdata = new WXCardLogInfo();
                wxdata.CardColor     = model.CardColor;
                wxdata.CardTitle     = model.CardTitle;
                wxdata.CardSubTitle  = model.CardSubtitle;
                wxdata.CouponType    = WXCardLogInfo.CouponTypeEnum.Bonus;
                wxdata.CouponId      = model.Id;
                wxdata.ShopId        = model.ShopId;
                wxdata.Quantity      = 0; //最大库存数
                wxdata.DefaultDetail = model.RandomAmountStart.ToString("F2") + "元" + model.RandomAmountEnd.ToString("F2") + "元随机优惠券1张";
                wxdata.LeastCost     = (model.UseState == ShopBonusInfo.UseStateType.None ? 0 : (int)(model.UsrStatePrice * 100));
                wxdata.BeginTime     = model.BonusDateStart.Date;
                wxdata.EndTime       = model.BonusDateEnd.AddDays(1).AddMinutes(-1);
                ServiceProvider.Instance <IWXCardService> .Create.Add(wxdata);
            }
            #endregion
        }
コード例 #20
0
        public void EditCoupon(CouponInfo info)
        {
            CanAddOrEditCoupon(info);
            CouponInfo himallCouponSetting = context.CouponInfo.FirstOrDefault((CouponInfo a) => a.ShopId == info.ShopId && a.Id == info.Id);

            if (himallCouponSetting == null)
            {
                throw new HimallException("错误的优惠券信息");
            }
            int num = context.CouponRecordInfo.Count((CouponRecordInfo d) => d.CouponId == himallCouponSetting.Id);

            if (info.Num < num)
            {
                throw new HimallException("错误的发放总量,己领取数己超过发放总量");
            }
            context.CouponSettingInfo.RemoveRange(himallCouponSetting.Himall_CouponSetting);
            if (info.Himall_CouponSetting != null && info.Himall_CouponSetting.Count > 0)
            {
                himallCouponSetting.Himall_CouponSetting = info.Himall_CouponSetting;
            }
            himallCouponSetting.CouponName          = info.CouponName;
            himallCouponSetting.PerMax              = info.PerMax;
            himallCouponSetting.Num                 = info.Num;
            himallCouponSetting.ReceiveType         = info.ReceiveType;
            himallCouponSetting.EndIntegralExchange = info.EndIntegralExchange;
            himallCouponSetting.NeedIntegral        = info.NeedIntegral;
            himallCouponSetting.IntegralCover       = info.IntegralCover;
            if (himallCouponSetting.IsSyncWeiXin == 1 && himallCouponSetting.CardLogId.HasValue)
            {
                WXCardLogInfo wXCardLogInfo = context.WXCardLogInfo.FirstOrDefault((WXCardLogInfo d) => d.Id == himallCouponSetting.CardLogId.Value);
                if (wXCardLogInfo != null)
                {
                    int num1 = himallCouponSetting.Num - num;
                    ser_wxcard.EditGetLimit(new int?(himallCouponSetting.PerMax), wXCardLogInfo.CardId);
                    ser_wxcard.EditStock(num1, wXCardLogInfo.CardId);
                }
            }
            context.SaveChanges();
            SaveCover(himallCouponSetting);
        }
コード例 #21
0
        public void EditCoupon(CouponInfo info)
        {
            this.CanAddOrEditCoupon(info);
            CouponInfo model = base.Context.CouponInfo.FirstOrDefault <CouponInfo>(a => (a.ShopId == info.ShopId) && (a.Id == info.Id));

            if (model == null)
            {
                throw new HimallException("错误的优惠券信息");
            }
            int num = base.Context.CouponRecordInfo.Count <CouponRecordInfo>(d => d.CouponId == model.Id);

            if (info.Num < num)
            {
                throw new HimallException("错误的发放总量,已领取数已超过发放总量");
            }
            base.Context.CouponSettingInfo.RemoveRange(model.Himall_CouponSetting);
            if ((info.Himall_CouponSetting != null) && (info.Himall_CouponSetting.Count > 0))
            {
                model.Himall_CouponSetting = info.Himall_CouponSetting;
            }
            model.CouponName          = info.CouponName;
            model.PerMax              = info.PerMax;
            model.Num                 = info.Num;
            model.ReceiveType         = info.ReceiveType;
            model.EndIntegralExchange = info.EndIntegralExchange;
            model.NeedIntegral        = info.NeedIntegral;
            model.IntegralCover       = info.IntegralCover;
            if ((model.IsSyncWeiXin == 1) && model.CardLogId.HasValue)
            {
                WXCardLogInfo info2 = base.Context.WXCardLogInfo.FirstOrDefault <WXCardLogInfo>(d => d.Id == model.CardLogId.Value);
                if (info2 != null)
                {
                    int num2 = model.Num - num;
                    this.ser_wxcard.EditGetLimit(new int?(model.PerMax), info2.CardId);
                    this.ser_wxcard.EditStock(num2, info2.CardId);
                }
            }
            base.Context.SaveChanges();
            this.SaveCover(model);
        }
コード例 #22
0
        private long SyncCouponRecordInfo(string cardid, long couponRecordId, WXCardLogInfo.CouponTypeEnum couponType)
        {
            long id = 0;

            if (!string.IsNullOrWhiteSpace(cardid))
            {
                WXCardLogInfo wXCardLogInfo = context.WXCardLogInfo.FirstOrDefault((WXCardLogInfo d) => d.CardId == cardid);
                if (wXCardLogInfo != null)
                {
                    WXCardCodeLogInfo wXCardCodeLogInfo = context.WXCardCodeLogInfo.FirstOrDefault((WXCardCodeLogInfo d) => d.CouponCodeId == couponRecordId && (int?)d.CouponType == (int?)couponType);
                    if (wXCardCodeLogInfo == null)
                    {
                        wXCardCodeLogInfo = new WXCardCodeLogInfo()
                        {
                            CardId       = cardid,
                            CodeStatus   = 0,
                            CouponType   = new WXCardLogInfo.CouponTypeEnum?(couponType),
                            CouponCodeId = new long?(couponRecordId),
                            SendTime     = new DateTime?(DateTime.Now),
                            CardLogId    = new long?(wXCardLogInfo.Id)
                        };
                        context.WXCardCodeLogInfo.Add(wXCardCodeLogInfo);
                        context.SaveChanges();
                        WXCardLogInfo.CouponTypeEnum?nullable       = wXCardCodeLogInfo.CouponType;
                        WXCardLogInfo.CouponTypeEnum valueOrDefault = nullable.GetValueOrDefault();
                        if (nullable.HasValue && valueOrDefault == WXCardLogInfo.CouponTypeEnum.Coupon)
                        {
                            CouponRecordInfo couponRecordInfo = context.CouponRecordInfo.FirstOrDefault((CouponRecordInfo d) => d.Id == couponRecordId);
                            if (couponRecordInfo != null)
                            {
                                couponRecordInfo.WXCodeId = new long?(wXCardCodeLogInfo.Id);
                            }
                        }
                        context.SaveChanges();
                    }
                    id = wXCardCodeLogInfo.Id;
                }
            }
            return(id);
        }
コード例 #23
0
        public void Add(ShopBonusInfo model, long shopid)
        {
            var bonus = Context.ShopBonusInfo.Where(p => p.ShopId == shopid).FirstOrDefault();

            if (bonus != null && !bonus.IsInvalid && bonus.DateEnd > DateTime.Now && bonus.DateStart < DateTime.Now)
            {
                throw new HimallException("一个时间段只能新增一个随机红包");
            }
            model.DateEnd      = model.DateEnd.AddHours(23).AddMinutes(59).AddSeconds(59);
            model.BonusDateEnd = model.BonusDateEnd.AddHours(23).AddMinutes(59).AddSeconds(59);
            model.ShopId       = shopid;
            model.IsInvalid    = false;
            model.ReceiveCount = 0;
            model.QRPath       = "";
            model = Context.ShopBonusInfo.Add(model);
            Context.Configuration.ValidateOnSaveEnabled = false;
            Context.SaveChanges();
            Context.Configuration.ValidateOnSaveEnabled = false;
            Context.SaveChanges();

            #region  步微信
            if (model.SynchronizeCard == true)
            {
                WXCardLogInfo wxdata = new WXCardLogInfo();
                wxdata.CardColor     = model.CardColor;
                wxdata.CardTitle     = model.CardTitle;
                wxdata.CardSubTitle  = model.CardSubtitle;
                wxdata.CouponType    = ThisCouponType;
                wxdata.CouponId      = model.Id;
                wxdata.ShopId        = model.ShopId;
                wxdata.Quantity      = 0; //最大库存数
                wxdata.DefaultDetail = model.RandomAmountStart.ToString("F2") + "元" + model.RandomAmountEnd.ToString("F2") + "元随机优惠券1张";
                wxdata.LeastCost     = (model.UseState == ShopBonusInfo.UseStateType.None ? 0 : (int)(model.UsrStatePrice * 100));
                wxdata.BeginTime     = model.BonusDateStart.Date;
                wxdata.EndTime       = model.BonusDateEnd.AddDays(1).AddMinutes(-1);
                ServiceProvider.Instance <IWXCardService> .Create.Add(wxdata);
            }
            #endregion
        }
コード例 #24
0
        public void EditGetLimit(int?num, string cardid)
        {
            Func <string, WxJsonResult> fun = null;

            if (!num.HasValue)
            {
                num = 0;
            }
            WXCardLogInfo carddata = context.WXCardLogInfo.FirstOrDefault(o => o.CardId == cardid);

            if (carddata != null)
            {
                string accessToken = GetAccessToken(carddata.AppId, carddata.AppSecret);
                if (!string.IsNullOrWhiteSpace(accessToken))
                {
                    if (fun == null)
                    {
                        fun = delegate(string accessToken2)
                        {
                            string urlFormat = string.Format("https://api.weixin.qq.com/card/update?access_token={0}", accessToken2);
                            var    data      = new
                            {
                                card_id        = carddata.CardId,
                                general_coupon = new { base_info = new { get_limit = num } }
                            };
                            return(CommonJsonSend.Send <WxJsonResult>(null, urlFormat, data, CommonJsonSendType.POST, 0x2710, false));
                        };
                    }
                    WxJsonResult result = ApiHandlerWapper.TryCommonApi(fun, accessToken, true);
                    if (result.errcode != ReturnCode.请求成功)
                    {
                        Log.Error("微信同步修改卡券个人限领失败", new Exception(((int)result.errcode).ToString() + ":" + result.errmsg));
                    }
                }
            }
        }
コード例 #25
0
        /// <summary>
        /// 添加卡券
        /// </summary>
        /// <param name="info"></param>
        public bool Add(WXCardLogInfo info)
        {
            bool   issuccess = false;
            string acctoken  = "";
            string curHost   = "http://" + Core.Helper.WebHelper.GetHost();
            string imagefile = "/images/defaultwxlogo.png";
            string wxlogo    = Core.HimallIO.GetImagePath(imagefile);

            if (wxlogo.IndexOf("http") < 0)
            {
                wxlogo = curHost + imagefile;
            }
            var siteSetting = ServiceProvider.Instance <ISiteSettingService> .Create.GetSiteSettings();

            var shopser  = ServiceProvider.Instance <IShopService> .Create;
            var vshopser = ServiceProvider.Instance <IVShopService> .Create;
            CardCreateResultJson wxResultJson = new CardCreateResultJson();

            #region 组织数据
            //基础数据
            Card_BaseInfoBase _BaseInfo = new Card_BaseInfoBase()
            {
                logo_url    = wxlogo,
                brand_name  = siteSetting.SiteName,
                code_type   = Card_CodeType.CODE_TYPE_BARCODE,
                title       = info.CardTitle,
                sub_title   = info.CardSubTitle,
                color       = info.CardColor,
                notice      = "专供" + siteSetting.SiteName + "使用",
                description = @"" + (info.LeastCost > 0 ? "满¥" + (info.LeastCost / 100).ToString("F2") + "使用" : "无门槛使用") + ",有效期至" + info.BeginTime.ToString("yyyy年MM月dd日") + "-" + info.EndTime.ToString("yyyy年MM月dd日"),
                date_info   = new Card_BaseInfo_DateInfo()
                {
                    type            = Card_DateInfo_Type.DATE_TYPE_FIX_TIME_RANGE.ToString(),
                    begin_timestamp = DateTimeHelper.GetWeixinDateTime(info.BeginTime),
                    end_timestamp   = DateTimeHelper.GetWeixinDateTime(info.EndTime),
                },
                sku = new Card_BaseInfo_Sku()
                {
                    quantity = info.Quantity == 0 ? MaxStock : info.Quantity
                },
                get_limit       = info.GetLimit == 0 ? MaxStock : info.GetLimit,
                use_custom_code = false,
                bind_openid     = false,
                can_share       = false,
                can_give_friend = false,
                custom_url_name = "立即使用",
            };
            //代金券数据
            var cardData = new Card_GeneralCouponData()
            {
                base_info      = _BaseInfo,
                default_detail = info.DefaultDetail
            };
            #endregion

            #region 诊所发布
            if (info.ShopId > 0)
            {
                _BaseInfo.custom_url = curHost + "/Shop/Home/" + info.ShopId.ToString();
            }
            var vshopSetting = vshopser.GetVShopSetting(info.ShopId);
            var vshopinfo    = vshopser.GetVShopByShopId(info.ShopId);
            var shopinfo     = shopser.GetShop(info.ShopId);
            if (vshopSetting != null && shopinfo != null && vshopinfo != null)
            {
                if (!string.IsNullOrWhiteSpace(vshopSetting.AppId) && !string.IsNullOrWhiteSpace(vshopSetting.AppSecret))
                {
                    acctoken = GetAccessToken(vshopSetting.AppId, vshopSetting.AppSecret);
                    if (!string.IsNullOrWhiteSpace(acctoken))
                    {
                        _BaseInfo.brand_name = shopinfo.ShopName;
                        if (!string.IsNullOrWhiteSpace(vshopinfo.WXLogo))
                        {
                            wxlogo             = curHost + vshopinfo.WXLogo;
                            _BaseInfo.logo_url = wxlogo;
                        }
                        wxResultJson = CardApi.CreateCard(acctoken, cardData);
                        if (wxResultJson.errcode == Senparc.Weixin.ReturnCode.请求成功)
                        {
                            info.AppId     = vshopSetting.AppId;
                            info.AppSecret = vshopSetting.AppSecret;
                            info.CardId    = wxResultJson.card_id;
                            issuccess      = true;
                        }
                    }
                }
            }
            #endregion

            if (!issuccess)
            {
                #region 平台发布
                if (!string.IsNullOrWhiteSpace(siteSetting.WeixinAppId) && !string.IsNullOrWhiteSpace(siteSetting.WeixinAppSecret))
                {
                    acctoken = GetAccessToken(siteSetting.WeixinAppId, siteSetting.WeixinAppSecret);
                    if (!string.IsNullOrWhiteSpace(acctoken))
                    {
                        _BaseInfo.brand_name = shopinfo.ShopName;
                        if (!string.IsNullOrWhiteSpace(siteSetting.WXLogo))
                        {
                            wxlogo             = curHost + siteSetting.WXLogo;
                            _BaseInfo.logo_url = wxlogo;
                        }
                        wxResultJson = CardApi.CreateCard(acctoken, cardData);
                        if (wxResultJson.errcode == Senparc.Weixin.ReturnCode.请求成功)
                        {
                            info.AppId     = siteSetting.WeixinAppId;
                            info.AppSecret = siteSetting.WeixinAppSecret;
                            info.CardId    = wxResultJson.card_id;
                            issuccess      = true;
                        }
                    }
                }

                if (info.ShopId < 1)
                {
                    _BaseInfo.custom_url = curHost + "/";
                }
                #endregion
            }

            if (issuccess)
            {
                info.AuditStatus = (int)WXCardLogInfo.AuditStatusEnum.Auditin;    //初始审核状态
                //数据入库
                Context.WXCardLogInfo.Add(info);
                Context.SaveChanges();
            }
            return(issuccess);
        }
コード例 #26
0
ファイル: CouponService.cs プロジェクト: sky63886/Himall3.3
        public void AddCoupon(CouponInfo info)
        {
            CanAddOrEditCoupon(info);
            var coupon = DbFactory.Default.Get <ActiveMarketServiceInfo>().Where(a => a.TypeId == MarketType.Coupon && a.ShopId == info.ShopId).FirstOrDefault();

            if (coupon == null)
            {
                throw new HimallException("您没有订购此服务");
            }
            var serviceEndTime = MarketApplication.GetServiceEndTime(coupon.Id);
            var newEnd         = DateTime.Parse(serviceEndTime.ToString("yyyy-MM-dd") + " 23:59:59");

            if (newEnd < info.EndTime)
            {
                throw new HimallException(string.Format("活动结束时间不得超过服务到期时间,<br/>您的服务到期时间为{0}", newEnd.ToString("yyyy-MM-dd HH:mm:ss")));
            }
            info.WXAuditStatus = 1;
            if (info.IsSyncWeiXin == 1)
            {
                //微信卡券同步改为自动过审后有BUG,暂时默认优惠券添加就是同步状态成功的
                //info.WXAuditStatus = 0;
            }
            DbFactory.Default
            .InTransaction(() =>
            {
                DbFactory.Default.Add(info);

                info.CouponSettingInfo.ForEach(p => p.CouponID = info.Id);
                DbFactory.Default.AddRange(info.CouponSettingInfo);

                if (info.CouponProductInfo != null)
                {
                    info.CouponProductInfo.ForEach(p => p.CouponId = info.Id);
                    DbFactory.Default.Add <CouponProductInfo>(info.CouponProductInfo);
                }

                #region  步微信
                if (info.IsSyncWeiXin == 1)
                {
                    WXCardLogInfo wxdata = new WXCardLogInfo();
                    wxdata.CardColor     = info.FormWXColor;
                    wxdata.CardTitle     = info.FormWXCTit;
                    wxdata.CardSubTitle  = info.FormWXCSubTit;
                    wxdata.CouponType    = ThisCouponType;
                    wxdata.CouponId      = info.Id;
                    wxdata.ShopId        = info.ShopId;
                    wxdata.ShopName      = info.ShopName;
                    wxdata.ReduceCost    = (int)(info.Price * 100);
                    wxdata.LeastCost     = (int)(info.OrderAmount * 100);
                    wxdata.Quantity      = info.Num;
                    wxdata.GetLimit      = info.PerMax;
                    wxdata.DefaultDetail = info.Price.ToString("F2") + "元优惠券1张";
                    wxdata.BeginTime     = info.StartTime.Date;
                    wxdata.EndTime       = info.EndTime.AddDays(1).AddMinutes(-1);
                    if (ser_wxcard.Add(wxdata))
                    {
                        DbFactory.Default
                        .Set <CouponInfo>()
                        .Set(n => n.CardLogId, wxdata.Id)
                        .Where(n => n.Id == info.Id)
                        .Succeed();
                    }
                    else
                    {
                        DbFactory.Default.Del(info);
                        throw new HimallException("同步微信卡券失败,请检查参数是否有错!");
                    }
                }
                #endregion
            });


            SaveCover(info);
        }
コード例 #27
0
        public bool Add(WXCardLogInfo info)
        {
            string           str;
            bool             flag         = false;
            string           accessToken  = "";
            string           str1         = string.Concat("http://", WebHelper.GetHost());
            string           str2         = string.Concat(str1, "/images/defaultwxlogo.png");
            SiteSettingsInfo siteSettings = Instance <ISiteSettingService> .Create.GetSiteSettings();

            IShopService         create               = Instance <IShopService> .Create;
            IVShopService        vShopService         = Instance <IVShopService> .Create;
            CardCreateResultJson cardCreateResultJson = new CardCreateResultJson();
            Card_BaseInfoBase    cardBaseInfoBase     = new Card_BaseInfoBase()
            {
                logo_url   = str2,
                brand_name = siteSettings.SiteName,
                code_type  = Card_CodeType.CODE_TYPE_BARCODE,
                title      = info.CardTitle,
                sub_title  = info.CardSubTitle,
                color      = info.CardColor,
                notice     = string.Concat("专供", siteSettings.SiteName, "使用")
            };
            Card_BaseInfoBase cardBaseInfoBase1 = cardBaseInfoBase;

            string[] strArrays  = new string[5];
            string[] strArrays1 = strArrays;
            if (info.LeastCost > 0)
            {
                int leastCost = info.LeastCost / 100;
                str = string.Concat("满¥", leastCost.ToString("F2"), "使用");
            }
            else
            {
                str = "无门槛使用";
            }
            strArrays1[0] = str;
            strArrays[1]  = ",有效期至";
            strArrays[2]  = info.BeginTime.ToString("yyyy年MM月dd日");
            strArrays[3]  = "-";
            strArrays[4]  = info.EndTime.ToString("yyyy年MM月dd日");
            cardBaseInfoBase1.description = string.Concat(strArrays);
            Card_BaseInfo_DateInfo cardBaseInfoDateInfo = new Card_BaseInfo_DateInfo()
            {
                type            = Card_DateInfo_Type.DATE_TYPE_FIX_TIME_RANGE.ToString(),
                begin_timestamp = Senparc.Weixin.Helpers.DateTimeHelper.GetWeixinDateTime(info.BeginTime),
                end_timestamp   = Senparc.Weixin.Helpers.DateTimeHelper.GetWeixinDateTime(info.EndTime)
            };

            cardBaseInfoBase.date_info = cardBaseInfoDateInfo;
            Card_BaseInfoBase cardBaseInfoBase2 = cardBaseInfoBase;
            Card_BaseInfo_Sku cardBaseInfoSku   = new Card_BaseInfo_Sku()
            {
                quantity = (info.Quantity == 0 ? MaxStock : info.Quantity)
            };

            cardBaseInfoBase2.sku            = cardBaseInfoSku;
            cardBaseInfoBase.get_limit       = (info.GetLimit == 0 ? MaxStock : info.GetLimit);
            cardBaseInfoBase.use_custom_code = false;
            cardBaseInfoBase.bind_openid     = false;
            cardBaseInfoBase.can_share       = false;
            cardBaseInfoBase.can_give_friend = false;
            cardBaseInfoBase.custom_url_name = "立即使用";
            Card_BaseInfoBase      shopName = cardBaseInfoBase;
            Card_GeneralCouponData cardGeneralCouponDatum = new Card_GeneralCouponData()
            {
                base_info      = shopName,
                default_detail = info.DefaultDetail
            };
            Card_GeneralCouponData cardGeneralCouponDatum1 = cardGeneralCouponDatum;

            if (info.ShopId > 0)
            {
                long shopId = info.ShopId;
                shopName.custom_url = string.Concat(str1, "/Shop/Home/", shopId.ToString());
            }
            WXShopInfo vShopSetting  = vShopService.GetVShopSetting(info.ShopId);
            VShopInfo  vShopByShopId = vShopService.GetVShopByShopId(info.ShopId);
            ShopInfo   shop          = create.GetShop(info.ShopId, false);

            if (vShopSetting != null && shop != null && vShopByShopId != null && !string.IsNullOrWhiteSpace(vShopSetting.AppId) && !string.IsNullOrWhiteSpace(vShopSetting.AppSecret))
            {
                accessToken = GetAccessToken(vShopSetting.AppId, vShopSetting.AppSecret);
                if (!string.IsNullOrWhiteSpace(accessToken))
                {
                    shopName.brand_name = shop.ShopName;
                    if (!string.IsNullOrWhiteSpace(vShopByShopId.WXLogo))
                    {
                        shopName.logo_url = string.Concat(str1, vShopByShopId.WXLogo);
                    }
                    cardCreateResultJson = CardApi.CreateCard(accessToken, cardGeneralCouponDatum1, 10000);
                    if (cardCreateResultJson.errcode == ReturnCode.请求成功)
                    {
                        info.AppId     = vShopSetting.AppId;
                        info.AppSecret = vShopSetting.AppSecret;
                        info.CardId    = cardCreateResultJson.card_id;
                        flag           = true;
                    }
                }
            }
            if (!flag)
            {
                if (!string.IsNullOrWhiteSpace(siteSettings.WeixinAppId) && !string.IsNullOrWhiteSpace(siteSettings.WeixinAppSecret))
                {
                    accessToken = GetAccessToken(siteSettings.WeixinAppId, siteSettings.WeixinAppSecret);
                    if (!string.IsNullOrWhiteSpace(accessToken))
                    {
                        shopName.brand_name = shop.ShopName;
                        if (!string.IsNullOrWhiteSpace(siteSettings.WXLogo))
                        {
                            shopName.logo_url = string.Concat(str1, siteSettings.WXLogo);
                        }
                        cardCreateResultJson = CardApi.CreateCard(accessToken, cardGeneralCouponDatum1, 10000);
                        if (cardCreateResultJson.errcode == ReturnCode.请求成功)
                        {
                            info.AppId     = siteSettings.WeixinAppId;
                            info.AppSecret = siteSettings.WeixinAppSecret;
                            info.CardId    = cardCreateResultJson.card_id;
                            flag           = true;
                        }
                    }
                }
                if (info.ShopId < 1)
                {
                    shopName.custom_url = string.Concat(str1, "/");
                }
            }
            if (flag)
            {
                info.AuditStatus = new int?(0);
                context.WXCardLogInfo.Add(info);
                context.SaveChanges();
            }
            return(flag);
        }