function callValidateReceipt()

in typescript/src/services/appleValidateReceipts.ts [95:121]


function callValidateReceipt(
  receipt: string,
  app: App = App.Live,
  forceSandbox = false,
): Promise<IHttpClientResponse> {
  const endpoint = forceSandbox ? sandboxReceiptEndpoint : receiptEndpoint;
  return passwordForApp(app)
    .then((password) => {
      const body = JSON.stringify({
        'receipt-data': receipt,
        password: password,
        'exclude-old-transactions': true,
      });
      return restClient.client.post(endpoint, body);
    })
    .then((response) => {
      const statusCode = response.message.statusCode;
      const statusText = response.message.statusMessage;
      if (statusCode && (statusCode < 200 || statusCode >= 300)) {
        console.error(
          `Impossible to validate the receipt, got ${statusCode} ${statusText} from ${endpoint}`,
        );
        throw new ProcessingError('Impossible to validate receipt', true);
      }
      return response;
    });
}