402 Payment Required
Penggunaan
Ketika galat 402 Payment Required tiba, klien memahami bahwa akses ke sumber daya yang diminta tidak diberikan untuk saat ini.
Status yang dicadangkan
402 Payment Required dicadangkan untuk penggunaan di masa mendatang. Saat ini perilakunya non-standar dan berbeda-beda antar implementasi.
Karena ini merupakan respons non-standar, penyedia yang berbeda menggunakan status ini dengan cara yang berbeda. Sebagai contoh, Shopify API mengembalikan 402 Payment Required untuk menandakan bahwa toko daring telah dibekukan dan administrator toko harus melunasi tagihan terutang agar akses dipulihkan.
Stripe API mengembalikan 402 Payment Required ketika upaya pembayaran gagal, misalnya kartu ditolak atau dana tidak mencukupi.
Dampak SEO
Mesin pencari seperti Google tidak mengindeks URL yang mengembalikan status 402 Payment Required. URL yang sebelumnya terindeks namun kini mengembalikan kode status ini akan dihapus dari hasil pencarian.
Contoh
Klien meminta sebuah sumber daya dan server merespons dengan 402 Payment Required untuk menandakan bahwa akses diblokir sampai pembayaran dilakukan. Body respons menjelaskan alasannya dan menyediakan tautan untuk menyelesaikan masalah tersebut.
Permintaan
GET /tech-news HTTP/1.1
Host: example.com
Respons
HTTP/1.1 402 Payment Required
Content-Type: text/html
Content-Length: 187
<html>
<head>
<title>Payment Required</title>
</head>
<body>
<p>Access to this resource requires an active
subscription. Renew at /account/billing.</p>
</body>
</html>
Cara memperbaiki
402 Payment Required berarti layanan mengharapkan pembayaran atau langganan aktif sebelum memberikan akses. Karena status ini non-standar, perbaikannya bergantung pada layanan tertentu yang mengembalikan galat tersebut.
Periksa status pembayaran dan langganan. Masuk ke dasbor layanan dan pastikan akun masih aktif. Masa uji coba yang berakhir, langganan yang kedaluwarsa, atau tagihan terutang akan memicu status ini. Shopify mengembalikan 402 ketika sebuah toko dibekukan akibat tagihan yang belum dibayar. Stripe mengembalikan 402 ketika penagihan gagal (kartu ditolak, dana tidak mencukupi).
Pastikan informasi penagihan masih berlaku. Kartu kredit yang kedaluwarsa, penagihan yang gagal, atau metode pembayaran yang telah dihapus akan memblokir akses. Perbarui detail pembayaran melalui portal penagihan penyedia. Periksa adanya penahanan atau pemblokiran penipuan pada metode pembayaran dengan menghubungi penerbit kartu.
Tinjau batas paket API. Beberapa layanan mengembalikan 402 ketika penggunaan melampaui tingkat paket saat ini. Periksa dasbor penggunaan penyedia untuk melihat konsumsi kuota. Tingkatkan paket atau tunggu siklus penagihan disetel ulang.
Inspeksi body respons untuk detail penyelesaian. Sebagian besar penyedia menyertakan pesan galat, kode galat, atau tautan ke halaman penagihan tertentu di dalam body respons 402. Respons Stripe menyertakan bidang decline_code (insufficient_funds, card_declined, expired_card) yang menunjukkan secara tepat penyebab kegagalannya.
Coba lagi dengan metode pembayaran alternatif. Ketika kartu atau rekening bank tertentu gagal, beralihlah ke metode pembayaran lain dan kirim ulang. Beberapa penyedia memungkinkan sumber pembayaran cadangan yang dikonfigurasi sebelumnya.
Hubungi penyedia API atau administrator layanan. Karena perilaku 402 non-standar, dokumentasi penyedialah yang menetapkan langkah penyelesaian yang tepat. Jika body respons kurang detail, buka tiket dukungan dengan menyertakan ID permintaan dan stempel waktunya.
Referensi kode
.NET
HttpStatusCode.PaymentRequired
Rust
http::StatusCode::PAYMENT_REQUIRED
Rails
:payment_required
Go
http.StatusPaymentRequired
Symfony
Response::HTTP_PAYMENT_REQUIRED
Python3.5+
http.HTTPStatus.PAYMENT_REQUIRED
Java
java.net.HttpURLConnection.HTTP_PAYMENT_REQUIRED
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_PAYMENT_REQUIRED
Angular
@angular/common/http/HttpStatusCode.PaymentRequired