Files
api-wipay/RESPONSE_FORMAT_VERIFICATION.md

2.4 KiB

Verifikasi Format Response - Pastikan Sama dengan API Lama

⚠️ PENTING: Format Response Harus Sama Persis

Aplikasi mobile mungkin bergantung pada format response yang spesifik. Perbedaan format bisa membuat aplikasi tidak berjalan dengan baik.

Endpoint dengan Response Khusus

1. batal_pembayaran

API Lama:

$data = array(
    'status' => 404,
    'pesan'  => "Gagal membatalkan pembayaran, silahkan coba beberapa saat lagi",
);
...
if ($cek_pembayaran) {
    $data['status'] = 200;  // Hanya update status, pesan TIDAK diubah
}

Response API Lama saat sukses:

{
  "status": 200,
  "pesan": "Gagal membatalkan pembayaran, silahkan coba beberapa saat lagi"
}

API Baru (Sekarang):

{
  "status": 200,
  "pesan": "Gagal membatalkan pembayaran, silahkan coba beberapa saat lagi"
}

SAMA

2. confirm_pembayaran

API Lama:

$data = array(
    'status' => 404,
    'pesan'  => "Gagal membatalkan pembayaran, silahkan coba beberapa saat lagi",
);
...
if ($cek_pembayaran) {
    $data['status'] = 200;  // Hanya update status, pesan TIDAK diubah
}

Response API Lama saat sukses:

{
  "status": 200,
  "pesan": "Gagal membatalkan pembayaran, silahkan coba beberapa saat lagi"
}

API Baru (Sekarang):

{
  "status": 200,
  "pesan": "Gagal membatalkan pembayaran, silahkan coba beberapa saat lagi"
}

SAMA

Format Response Standar

Success dengan Data

{
  "status": 200,
  "pesan": "Message",
  "data": {}
}

Success dengan Field di Root (login)

{
  "status": 200,
  "pesan": "Selamat Datang ...",
  "user": {...},
  "data_sl": [...]
}

Success Tanpa Pesan (beberapa endpoint)

{
  "status": 200,
  "pesan": "Default message (tidak diubah)"
}

Error

{
  "status": 404,
  "pesan": "Error message"
}

Catatan Penting

  1. Aplikasi mobile mungkin hanya cek status == 200 untuk menentukan sukses
  2. Tapi untuk amannya, format response harus sama persis dengan API lama
  3. Field pesan tetap ada meskipun status 200 (sesuai API lama)
  4. Beberapa endpoint mengembalikan field langsung di root (bukan nested di data)

Rekomendasi Testing

Sebelum deploy ke production, lakukan testing dengan:

  1. Test semua endpoint dengan aplikasi mobile
  2. Bandingkan response JSON dari API lama vs API baru
  3. Pastikan aplikasi mobile bisa parse response dengan benar
  4. Test edge cases (error handling, empty data, dll)