Esempio n. 1
0
        private bool update(WxMember entity, WxMemberDto dto)
        {
            entity.NickName       = dto.NickName;
            entity.Icon           = dto.Icon;
            entity.Birthday       = dto.Birthday;
            entity.LastLoginDate  = DateTime.Now;
            entity.SubscribedDate = dto.SubscribedDate;
            entity.Language       = dto.Language;
            entity.OpenId         = dto.OpenId;
            entity.Province       = dto.Province;
            entity.City           = dto.City;
            entity.Sex            = dto.Sex;
            entity.Country        = dto.Country;

            return(_Repo.Update(entity, p => new object[] { entity.Id }));
        }
Esempio n. 2
0
        /// <summary>
        /// 会员卡激活
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        private async Task MemberActiveAsync(WxEvent e)
        {
            var card = await Context.WxCards.FirstOrDefaultAsync(a => a.CardId == e.CardId);

            var business = await GetAsync <Business>(card.BusinessId);

            var token = await GetTokenAsync(business.WeChatAppId, business.WeChatSecret);

            var res = await WxHelper.GetMemberInfoAsync(token, e.CardId, e.UserCardCode);

            var json = JObject.Parse(res);

            if (json["errcode"].ToString() != "0")
            {
                // 获取会员信息失败,重新设置一遍Token,再试一次
                await SetTokenAsync(business.WeChatAppId, business.WeChatSecret);

                res = await WxHelper.GetMemberInfoAsync(token, e.CardId, e.UserCardCode);

                json = JObject.Parse(res);
                if (json["errcode"].ToString() != "0")
                {
                    Log.Error($"获取会员[{e.UserCardCode}]信息失败:{json["errmsg"]}");
                    return;
                }
            }
            var entity = new WxMember
            {
                Code       = e.UserCardCode,
                NickName   = json["nickname"].ToString(),
                CardId     = e.CardId,
                WxCardId   = card.ID,
                OpenId     = e.FromUserName,
                BusinessId = card.BusinessId
            };

            if (json["user_info"]["common_field_list"] != null)
            {
                var arr = json["user_info"]["common_field_list"].ToArray();
                entity.Name  = arr.FirstOrDefault(a => a["name"].ToString() == "USER_FORM_INFO_FLAG_NAME")?["value"].ToString();
                entity.Phone = arr.FirstOrDefault(a => a["name"].ToString() == "USER_FORM_INFO_FLAG_MOBILE")?["value"].ToString();
                var gender = arr.FirstOrDefault(a => a["name"].ToString() == "USER_FORM_INFO_FLAG_SEX")?["value"].ToString();
                if (gender == "MALE")
                {
                    entity.Gender = UserGender.Male;
                }
                else if (gender == "FEMALE")
                {
                    entity.Gender = UserGender.Female;
                }
                var birthday = arr.FirstOrDefault(a => a["name"].ToString() == "USER_FORM_INFO_FLAG_BIRTHDAY")?["value"].ToString();
                if (birthday != null)
                {
                    entity.Birthday = Convert.ToDateTime(birthday);
                }
            }
            var userStr = await WxHelper.GetUserInfoAsync(e.FromUserName, token);

            var user = JsonConvert.DeserializeObject <WxListenUser>(userStr);

            entity.Logo = user.headimgurl;
            await Context.AddAsync(entity);

            await Context.SaveChangesAsync();
        }