Розширення терміну передплати в App Store через Server API може стати складнішим завданням, ніж здавалося на перший погляд. Один з потенційних викликів, з яким можуть зіткнутися розробники, – це помилка “unauthenticated error”. Ця стаття пропонує вирішення даної проблеми і надає відповідний код для розширення терміну передплати.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$request = json_encode( array( "password"=>$applesharedsecret, "extendByDays" => 7, // Обов'язково. Кількість днів, на які потрібно розширити термін продовження передплати, максимум: 90 днів "extendReasonCode" => "Reason", // Обов'язково. Код причини розширення терміну передплати "requestIdentifier" => "$user_id" // Обов'язково. Рядок, що містить унікальне значення, яке ви вказуєте для унікальної ідентифікації цього запиту на розширення терміну передплати ) ); $appleurl = "https://api.storekit-sandbox.itunes.apple.com/inApps/v1/subscriptions/extend/$originalTransactionId"; // для продакшену $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $appleurl); curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Cache-Control: no-cache")); curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $request); $encodedResponse = curl_exec($ch); // Закодована відповідь від Apple |