/// <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); }
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); }
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); }
/// <summary> /// 获取卡券领取地址 /// </summary> /// <param name="cardid"></param> /// <returns></returns> public string GetCardReceiveUrl(string cardid, long couponRecordId, WXCardLogInfo.CouponTypeEnum couponType) { string result = ""; if (!string.IsNullOrWhiteSpace(cardid)) { var card = Context.WXCardLogInfo.FirstOrDefault(d => d.CardId == cardid); if (card != null) { string acctoken = GetAccessToken(card.AppId, card.AppSecret); //生成记录 long logid = SyncCouponRecordInfo(cardid, couponRecordId, couponType); int outerid = (int)logid; CreateQRResultJson wxResultJson = CardApi.CreateQR(acctoken, card.CardId, null, null, null, false, null, outerid); if (wxResultJson.errcode == Senparc.Weixin.ReturnCode.请求成功) { result = wxResultJson.url; } else { Log.Info("[Coupon]" + ((int)wxResultJson.errcode).ToString() + ":" + wxResultJson.errmsg); } } } return(result); }
/// <summary> /// 使用卡券 /// <para>核销卡券</para> /// </summary> /// <param name="couponcodeid">红包记录号</param> /// <param name="coupontype">红包类型</param> public void Consume(long couponcodeid, WXCardLogInfo.CouponTypeEnum coupontype) { WXCardCodeLogInfo wxcdata = Context.WXCardCodeLogInfo.FirstOrDefault(d => d.CouponCodeId == couponcodeid && d.CouponType == coupontype); if (wxcdata != null) { Consume(wxcdata.CardId, wxcdata.Code); } }
public void Consume(long couponcodeid, WXCardLogInfo.CouponTypeEnum coupontype) { WXCardCodeLogInfo wXCardCodeLogInfo = context.WXCardCodeLogInfo.FirstOrDefault((WXCardCodeLogInfo d) => d.CouponCodeId == couponcodeid && (int?)d.CouponType == (int?)coupontype); if (wXCardCodeLogInfo != null) { Consume(wXCardCodeLogInfo.CardId, wXCardCodeLogInfo.Code); } }
/// <summary> /// 获取卡券领取地址 /// </summary> /// <param name="cardid"></param> /// <returns></returns> public string GetCardReceiveUrl(long id, long couponRecordId, WXCardLogInfo.CouponTypeEnum couponType) { string cardid = ""; var card = Context.WXCardLogInfo.FirstOrDefault(d => d.Id == id); if (card != null) { cardid = card.CardId; } return(GetCardReceiveUrl(cardid, couponRecordId, couponType)); }
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)); }
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(); } }
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); }
/// <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); }
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); }
/// <summary> /// 卡券与红包领取信息同步前持久化 /// </summary> /// <param name="cardid"></param> /// <param name="openid"></param> /// <param name="couponRecordId"></param> /// <param name="couponType"></param> private long SyncCouponRecordInfo(string cardid, long couponRecordId, WXCardLogInfo.CouponTypeEnum couponType) { long result = 0; if (!string.IsNullOrWhiteSpace(cardid)) { var card = Context.WXCardLogInfo.FirstOrDefault(d => d.CardId == cardid); if (card != null) { var wxcdata = Context.WXCardCodeLogInfo.FirstOrDefault(d => d.CouponCodeId == couponRecordId && d.CouponType == couponType); if (wxcdata == null) { //记录数据 wxcdata = new WXCardCodeLogInfo(); wxcdata.CardId = cardid; wxcdata.CodeStatus = (int)WXCardCodeLogInfo.CodeStatusEnum.WaitReceive; wxcdata.CouponType = couponType; wxcdata.CouponCodeId = couponRecordId; wxcdata.SendTime = DateTime.Now; wxcdata.CardLogId = card.Id; Context.WXCardCodeLogInfo.Add(wxcdata); Context.SaveChanges(); switch (wxcdata.CouponType) { case WXCardLogInfo.CouponTypeEnum.Coupon: var coupondata = Context.CouponRecordInfo.FirstOrDefault(d => d.Id == couponRecordId); if (coupondata != null) { coupondata.WXCodeId = wxcdata.Id; } break; } Context.SaveChanges(); } result = wxcdata.Id; } } return(result); }
/// <summary> /// 获取领取记录 /// </summary> /// <param name="id"></param> /// <returns></returns> public WXCardCodeLogInfo GetCodeInfo(long couponCodeId, WXCardLogInfo.CouponTypeEnum couponType) { return(Context.WXCardCodeLogInfo.FirstOrDefault(d => d.CouponCodeId == couponCodeId && d.CouponType == couponType)); }
public WXCardCodeLogInfo GetCodeInfo(long couponCodeId, WXCardLogInfo.CouponTypeEnum couponType) { return(context.WXCardCodeLogInfo.FirstOrDefault((WXCardCodeLogInfo d) => d.CouponCodeId == couponCodeId && (int?)d.CouponType == (int?)couponType)); }
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); }
/// <summary> /// 生成同步微信按扭JS信息 /// </summary> /// <param name="cardid"></param> /// <param name="openid"></param> /// <param name="couponRecordId"></param> /// <param name="couponType"></param> /// <param name="url">当前页地址</param> /// <returns></returns> private WXSyncJSInfoCardInfo MakeSyncWXJSInfo(string cardid, long couponRecordId, WXCardLogInfo.CouponTypeEnum couponType) { WXSyncJSInfoCardInfo result = null; if (!string.IsNullOrWhiteSpace(cardid)) { var card = Context.WXCardLogInfo.FirstOrDefault(d => d.CardId == cardid); if (card != null) { string acctoken = GetAccessToken(card.AppId, card.AppSecret); string apiticket = GetCardJSApiTicket(acctoken); if (!string.IsNullOrWhiteSpace(apiticket)) { result = new WXSyncJSInfoCardInfo(); //生成记录 long logid = SyncCouponRecordInfo(cardid, couponRecordId, couponType); int outerid = (int)logid; JSSDKHelper jsshelper = new JSSDKHelper(); result.card_id = cardid; result.timestamp = JSSDKHelper.GetTimestamp(); result.nonce_str = ""; result.signature = jsshelper.GetCardSign2015(apiticket, result.nonce_str, result.timestamp, result.card_id); result.outerid = outerid; } else { Log.Info("[Coupon]票据获取失败"); } } } return(result); }