Можно ли отменить подписку в App Store, как в Google Play (с помощью службы Google AndroidPublisher)?
public function checkPurchases($subscription_id, $receipt_data, $sandbox_receipt = false)
{
if ($sandbox_receipt) {
$url = "https://sandbox.itunes.apple.com/verifyReceipt/";
} else {
$url = "https://buy.itunes.apple.com/verifyReceipt";
}
$ch = curl_init($url);
$data_string = json_encode(array(
'receipt-data' => $receipt_data,
'password' => env(APPSTORE_PASS),
));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if (200 != $httpCode) {
return false; // Error validating App Store transaction receipt. Response HTTP code $httpCode
}
return true;
}
Да, это возможно. но не из приложения.
Вот записка от яблоко:
Подписка оплачивается полностью при ее покупке и может быть возвращена только путем обращения в службу поддержки Apple. Например, если пользователь случайно купил не тот товар, служба поддержки может отменить подписку и вернуть деньги. Клиенты не могут передумать в середине периода подписки и решить, что они не хотят платить за оставшуюся часть подписки.
Таким образом, во время проверки квитанции вы должны проверить поле «Дата отмены», и, если оно есть, независимо от даты истечения срока действия, вы должны рассматривать эту подписку как НЕ ДЕЙСТВИТЕЛЬНУЮ.
Других решений пока нет …