private static TRes DecryptTo <TRes>(this WechatMAppEncryptBody encryptBody, string sessionKey)
        {
            try
            {
                var encryptDataBytes = Convert.FromBase64String(encryptBody.encrypt_data);
                var sesssionKeyBytes = Convert.FromBase64String(sessionKey);
                var ivBytes          = Convert.FromBase64String(encryptBody.iv);

                var result = Encoding.UTF8.GetString(AesRijndael.Decrypt(sesssionKeyBytes, encryptDataBytes, ivBytes, 128,
                                                                         128, CipherMode.CBC));

                return(JsonConvert.DeserializeObject <TRes>(result));
            }
            catch
            {
            }

            return(default);
 public static WechatUserPhoneInfo ToUserPhone(this WechatMAppEncryptBody encryptBody, string sessionKey)
 {
     return(encryptBody.DecryptTo <WechatUserPhoneInfo>(sessionKey));
 }