Пример #1
0
 public void RegisterCardCoupon(RegisterCardCoupon registerCard)
 {
     using (var database = this.databaseFactory.GenerateDatabase(isWriteOnly: true)) {
         var parameters = new DynamicParameters();
         parameters.Add("p_AppId", registerCard.AppId);
         parameters.Add("p_OpenId", registerCard.OpenId);
         parameters.Add("p_UnionId", registerCard.UnionId);
         parameters.Add("p_CardId", registerCard.CardId);
         parameters.Add("p_UserCode", registerCard.UserCode);
         parameters.Add("p_IsGiveByFriend", registerCard.IsGiveByFriend);
         parameters.Add("p_IsRestoreMemberCard", registerCard.IsRestoreMemberCard);
         parameters.Add("p_FriendOpenId", registerCard.FriendOpenId);
         parameters.Add("p_ActiveTime", registerCard.ActiveTime);
         parameters.Add("error_code", null, DbType.Int32, ParameterDirection.Output);
         database.Execute("spRegisterWxUserCard", parameters, System.Data.CommandType.StoredProcedure, true);
         //error_code = -1000 表示用户信息稍微登记
         if (parameters.Get <int>("error_code") > 0)
         {
             throw new SharingException(string.Format("Error occured on proccess get card coupon. error code:{0}",
                                                      parameters.Get <int>("error_code")));
         }
     }
 }
Пример #2
0
        public void RegisterCardCoupon(RegisterCardCouponContext context)
        {
            var strBld  = new StringBuilder();
            var details = this.sharingHostService.MerchantDetails;

            foreach (var card in context.CardList)
            {
                if (card.IsSuccess)
                {
                    var response = this.wxapi.DecryptMCardUserCode(details.ChooseOfficial(context)
                                                                   , card.EncryptedCode);

                    if (response.HasError == false)
                    {
                        var cardcoupon = new RegisterCardCoupon()
                        {
                            ActiveTime          = DateTime.UtcNow.ToUnixStampDateTime(),
                            AppId               = context.AppId,
                            CardId              = card.CardId,
                            Event               = WeChatEventTypes.user_get_card,
                            MsgType             = WeChatMsgTypes.@event,
                            FriendOpenId        = string.Empty,
                            IsGiveByFriend      = false,
                            IsRestoreMemberCard = false,
                            OpenId              = context.OpenId,
                            UserCode            = response.Code,
                            UnionId             = context.UnionId
                        };
                        this.wxUserService.RegisterCardCoupon(cardcoupon);
                    }
                    else
                    {
                        Logger.Error(response.SerializeToJson());
                    }
                }
            }
        }