apple.js 6.62 KB

let retrySuccess = 2;
let bypass = true

module.exports.verifyReceipt = async (req, res) => {
    console.log('===== POST verifyReceipt =====')
    console.log('url', req.originalUrl);
    console.log('headers', req.headers);
    console.log('query', req.query);
    console.log('params', req.params);
    console.log('body', req.body);

    let response = {
        "latest_receipt_info":[
           {
              "cancellation_date_ms":null,
              "transaction_id":"1000000692439725",
              "original_transaction_id":"1000000681025499",
              "quantity":"1",
              "subscription_group_identifier":"20548189",
              "is_in_intro_offer_period":"false",
              "original_purchase_date_ms":"1592456484000",
              "purchase_date_pst":"2020-07-13 21:50:22 America/Los_Angeles",
              "cancellation_date_pst":null,
              "is_trial_period":"false",
              "original_purchase_date_pst":"2020-06-17 22:01:24 America/Los_Angeles",
              "cancellation_reason":null,
              "promotional_offer_id":null,
              "cancellation_date":null,
              "original_purchase_date":"2020-06-18 05:01:24 Etc/GMT",
              "purchase_date_ms":"1594702222000",
              "is_upgraded":null,
              "product_id":"PLAY_PREMIUM",
              "purchase_date":"2020-08-31 04:50:22 Etc/GMT",
              "web_order_line_item_id":"1000000054018869"
           },{
            "cancellation_date_ms":null,
            "transaction_id":"1000000692439726",
            "original_transaction_id":"1000000681025499",
            "quantity":"1",
            "subscription_group_identifier":"20548189",
            "is_in_intro_offer_period":"false",
            "original_purchase_date_ms":"1592456484000",
            "purchase_date_pst":"2020-07-13 21:50:22 America/Los_Angeles",
            "cancellation_date_pst":null,
            "is_trial_period":"false",
            "original_purchase_date_pst":"2020-06-17 22:01:24 America/Los_Angeles",
            "cancellation_reason":null,
            "promotional_offer_id":null,
            "cancellation_date":null,
            "original_purchase_date":"2020-06-18 05:01:24 Etc/GMT",
            "purchase_date_ms":"1594702222000",
            "is_upgraded":null,
            "product_id":"PLAY_PREMIUM",
            "purchase_date":"2020-07-14 04:50:23 Etc/GMT",
            "web_order_line_item_id":"1000000054018869"
         },{
            "cancellation_date_ms":null,
            "transaction_id":"1000000692439725",
            "original_transaction_id":"1000000681025499",
            "quantity":"1",
            "subscription_group_identifier":"20548189",
            "is_in_intro_offer_period":"false",
            "original_purchase_date_ms":"1592456484000",
            "purchase_date_pst":"2020-07-13 21:50:22 America/Los_Angeles",
            "expires_date":"2021-07-14 04:55:03 Etc/GMT",
            "cancellation_date_pst":null,
            "is_trial_period":"false",
            "original_purchase_date_pst":"2020-06-17 22:01:24 America/Los_Angeles",
            "cancellation_reason":null,
            "promotional_offer_id":null,
            "expires_date_pst":"2020-07-13 21:55:22 America/Los_Angeles",
            "cancellation_date":null,
            "original_purchase_date":"2020-06-18 05:01:24 Etc/GMT",
            "expires_date_ms":"1594702522000",
            "purchase_date_ms":"1594702222000",
            "is_upgraded":null,
            "product_id":"AllEnglishMonthly",
            "purchase_date":"2020-07-14 04:50:22 Etc/GMT",
            "web_order_line_item_id":"1000000054018869"
         },{
            "cancellation_date_ms":null,
            "transaction_id":"1000000692439725",
            "original_transaction_id":"1000000681025499",
            "quantity":"1",
            "subscription_group_identifier":"20548189",
            "is_in_intro_offer_period":"false",
            "original_purchase_date_ms":"1592456484000",
            "purchase_date_pst":"2020-07-13 21:50:22 America/Los_Angeles",
            "expires_date":"2021-07-14 04:55:04 Etc/GMT",
            "cancellation_date_pst":null,
            "is_trial_period":"false",
            "original_purchase_date_pst":"2020-06-17 22:01:24 America/Los_Angeles",
            "cancellation_reason":null,
            "promotional_offer_id":null,
            "expires_date_pst":"2020-07-13 21:55:22 America/Los_Angeles",
            "cancellation_date":null,
            "original_purchase_date":"2020-06-18 05:01:24 Etc/GMT",
            "expires_date_ms":"1594702522000",
            "purchase_date_ms":"1594702222000",
            "is_upgraded":null,
            "product_id":"AllEnglishMonthly",
            "purchase_date":"2020-07-14 04:50:22 Etc/GMT",
            "web_order_line_item_id":"1000000054018869"
         }
        ],
        "environment":"Sandbox",
        "latest_receipt":"CshX8fbCshX8fbCshX8fbCsh==",
        "pending_renewal_info":[],
        "receipt":{
           "in_app":[],
           "adam_id":"0",
           "original_application_version":"1.0",
           "receipt_creation_date":"2020-07-14 04:45:25 Etc/GMT",
           "app_item_id":"0",
           "original_purchase_date_ms":"1375340400000",
           "expiration_date_pst":null,
           "preorder_date_pst":null,
           "original_purchase_date_pst":"2013-08-01 00:00:00 America/Los_Angeles",
           "request_date_ms":"1594702321083",
           "expiration_date":null,
           "expiration_date_ms":null,
           "original_purchase_date":"2013-08-01 07:00:00 Etc/GMT",
           "preorder_date_ms":null,
           "receipt_creation_date_pst":"2020-07-13 21:45:25 America/Los_Angeles",
           "receipt_type":"ProductionSandbox",
           "preorder_date":null,
           "bundle_id":"th.co.mimotech.tvos.aisplay",
           "receipt_creation_date_ms":"1594701925000",
           "request_date":"2020-07-14 04:52:01 Etc/GMT",
           "version_external_identifier":"0",
           "request_date_pst":"2020-07-13 21:52:01 America/Los_Angeles",
           "download_id":"0",
           "application_version":"0.0.6"
        },
        "status":"0",
        "is-retryable":null
     }

    let responseError = {
        "is-retryable": "",
        "latest_receipt": "",
        "latest_receipt_info": [],
        "pending_renewal_info": [],
        "receipt": {},
        "status": "21007",
        "environment": "Sandbox"
    }

    if (retrySuccess > 0 && !bypass) {
        retrySuccess -= 1
        res.send(responseError)
    } else {
       if(req.headers['x-redirect-url'] == 'https://sandbox.itunes.apple.com/verifyReceipt') {
         res.send(response)
       } else {
         res.send(responseError)
       }
    }
}