/// <summary> /// 是否可以同步微信 /// </summary> /// <param name="couponid"></param> /// <param name="couponcodeid"></param> /// <param name="couponType"></param> /// <param name="url"></param> /// <returns></returns> public Entities.WXSyncJSInfoByCard GetSyncWeiXin(long couponid, long couponcodeid, Entities.WXCardLogInfo.CouponTypeEnum couponType, string url) { Entities.WXSyncJSInfoByCard result = null; bool isNeedSyncWX = false; Entities.WXCardLogInfo wxcardinfo = null; Entities.WXCardCodeLogInfo wxcodeinfo = null; wxcardinfo = Get(couponid, couponType); if (wxcardinfo != null) { if (wxcardinfo.AuditStatus == (int)Entities.WXCardLogInfo.AuditStatusEnum.Audited) { isNeedSyncWX = true; } } if (isNeedSyncWX) { wxcodeinfo = GetCodeInfo(couponcodeid, couponType); if (wxcodeinfo != null) { if (wxcodeinfo.CodeStatus != (int)Entities.WXCardCodeLogInfo.CodeStatusEnum.WaitReceive) { isNeedSyncWX = false; } } } if (isNeedSyncWX) { result = GetWXSyncJSInfo(wxcardinfo.CardId, url); } return(result); }
/// <summary> /// 获取同步微信JS /// </summary> /// <param name="couponcodeid"></param> /// <param name="couponType"></param> /// <returns></returns> public Entities.WXJSCardModel GetJSWeiXinCard(long couponid, long couponcodeid, Entities.WXCardLogInfo.CouponTypeEnum couponType) { Entities.WXJSCardModel result = new Entities.WXJSCardModel(); result.cardId = "0"; //默认不可同步 bool isNeedSyncWX = false; Entities.WXCardLogInfo wxcardinfo = null; Entities.WXCardCodeLogInfo wxcodeinfo = null; wxcardinfo = Get(couponid, couponType); if (wxcardinfo != null) { if (wxcardinfo.AuditStatus == (int)Entities.WXCardLogInfo.AuditStatusEnum.Audited) { isNeedSyncWX = true; } } if (isNeedSyncWX) { wxcodeinfo = GetCodeInfo(couponcodeid, couponType); if (wxcodeinfo != null) { if (wxcodeinfo.CodeStatus != (int)Entities.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 Entities.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); }
/// <summary> /// 添加卡券 /// </summary> /// <param name="info"></param> public bool Add(Entities.WXCardLogInfo info) { bool issuccess = false; string acctoken = ""; string curHost = Core.Helper.WebHelper.GetScheme() + "://" + Core.Helper.WebHelper.GetHost(); string imagefile = "/images/defaultwxlogo.png"; string wxlogo = Core.MallIO.GetImagePath(imagefile); if (wxlogo.IndexOf("http") < 0) { wxlogo = curHost + imagefile; } var siteSetting = SiteSettingApplication.SiteSettings; 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), begin_timestamp = Senparc.CO2NET.Helpers.DateTimeHelper.GetWeixinDateTime(info.BeginTime), end_timestamp = Senparc.CO2NET.Helpers.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; * } * else * { * Log.Debug(JsonConvert.SerializeObject(wxResultJson)); * } * } * else * { * Log.Debug("[WXC]Token失败"); * } * } * } */ #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; } else { Log.Debug(JsonConvert.SerializeObject(wxResultJson)); } } else { Log.Debug("[WXC]Token失败"); } } if (info.ShopId < 1) { _BaseInfo.custom_url = curHost + "/"; } #endregion } if (issuccess) { info.AuditStatus = (int)Entities.WXCardLogInfo.AuditStatusEnum.Auditin; //初始审核状态 //数据入库 DbFactory.Default.Add(info); } return(issuccess); }