javascript - 如何查看苹果收据的有效期?

标签 javascript react-native in-app-purchase expo react-native-ios

我正在使用expo-in-app-purchase在react-native.am中进行应用内购买。为了验证应用商店的收据,我得到了这样的东西:

 result [
 {
      .........................
       purchase_date: '2021-05-03 11:34:17 Etc/GMT',
        purchase_date_ms: '1620041657000',
      purchase_date_pst: '2021-05-03 04:34:17 America/Los_Angeles',
     original_purchase_date: '2021-05-03 11:33:20 Etc/GMT',
      original_purchase_date_ms: '1620041600000',
       original_purchase_date_pst: '2021-05-03 04:33:20 America/Los_Angeles',
        expires_date: '2021-05-03 11:39:17 Etc/GMT',
      expires_date_ms: '1620041957000',
       expires_date_pst: '2021-05-03 04:39:17 America/Los_Angeles',
        ...............................................
     }
     ]

 pending_renewal_info:[{
           expiration_intent: '1',
          auto_renew_product_id: '******************',
         is_in_billing_retry_period: '0',
          product_id: '****************************',
        original_transaction_id: '1000000785803993',
         auto_renew_status: '0'
 }]

然后我尝试检查订阅是否到期,如下所示:

  const expirationDate = result.data.latest_receipt_info[0].expires_date_ms,
        expiry=Date.now() > expirationDate;//it is always true.

到期总是正确的,因为苹果给出的日期是我的日期之前 5 小时。即,如果我在 2021-05-04 10:00:00 这个日期购买东西,在苹果收据中显示到期日期像这样的 2021-05-04 5:00:00.ie 晚了 5 小时。那么我如何检查我的收据到期时间?

最佳答案

这应该有效

const expirationDate = parseInt(result.data.latest_receipt_info[0].expires_date_ms);
// Need to parse it to Int as it is in string format originally
const expirationDateObject = new Date(expirationDate);

const current = Date.now();
const currentDateObj = new Date(current);

const isExpired = currentDateObj.getTime() > expirationDateObject.getTime()

console.log(isExpired);

关于javascript - 如何查看苹果收据的有效期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67379243/

相关文章:

javascript - 尝试创建仅显示 3 个 div 的打印页面

javascript - react native ListView 键

ios - 如何通过 modalView 在应用内购买后重新加载数据

javascript - NodeJS - 将命令行输出存储为 var 并通过 res.send() 将其返回给客户端

javascript - 在高亮元素的拖动更改边框上

javascript - 如何使用 JavaScript 创建每个问题的计时器

javascript - React-native - 循环数组并在 map 上创建标记

javascript - React Native Android 中 View 之间的导航示例?

ios - 在应用程序购买中无法从 iTunes Connect 获取产品标识符?

iphone - Itunes Connect-如何删除应用内购买的新版本