[ 'type' => 'qris', 'channel' => 'QRIS', 'endpoint' => '/v1.0/qr/qr-mpm-generate' ], // ================= VA ================= 'va_bri' => ['type' => 'va', 'channel' => 'BRI'], 'va_bni' => ['type' => 'va', 'channel' => 'BNI'], 'va_bca' => ['type' => 'va', 'channel' => 'BCA'], 'va_cimb' => ['type' => 'va', 'channel' => 'CIMB'], 'va_mandiri' => ['type' => 'va', 'channel' => 'MANDIRI'], 'va_permata' => ['type' => 'va', 'channel' => 'PERMATA'], 'va_bsi' => ['type' => 'va', 'channel' => 'BSI'], 'va_muamalat' => ['type' => 'va', 'channel' => 'MUAMALAT'], 'va_indomaret' => ['type' => 'va', 'channel' => 'INDOMARET'], 'va_alfamart' => ['type' => 'va', 'channel' => 'ALFAMART'], // ================= EWALLET ================= 'ewallet_dana' => ['type' => 'ewallet', 'channel' => 'DANA'], 'ewallet_ovo' => ['type' => 'ewallet', 'channel' => 'OVO'], 'ewallet_sc' => ['type' => 'ewallet', 'channel' => 'SC'], 'ewallet_spay' => ['type' => 'ewallet', 'channel' => 'SPAY'], ]; /** * ===================================================== * PUBLIC FUNCTION * ===================================================== */ public static function map($method) { if (!isset(self::$map[$method])) { throw new Exception("Metode tidak dikenali: " . $method); } $data = self::$map[$method]; return [ 'type' => $data['type'], 'channel' => $data['channel'], 'endpoint' => $data['endpoint'] ?? self::getDefaultEndpoint($data['type']) ]; } /** * ===================================================== * DEFAULT ENDPOINT PER TYPE * ===================================================== */ private static function getDefaultEndpoint($type) { switch ($type) { case 'va': return '/v1.0/transfer-va/create-va'; case 'qris': return '/v1.0/qr/qr-mpm-generate'; case 'ewallet': return '/v1.0/debit/payment-host-to-host'; default: throw new Exception("Type tidak dikenali"); } } }