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;
});
}