harrypujianto / Veritrans-Laravel5

33 stars 45 forks source link

Push Notification Redirection Error 302 #19

Open ferryfernandez opened 6 years ago

ferryfernandez commented 6 years ago

Hello, semua sudah berjalan baik.. tetapi kenapa push notificationnya memberikan status error ya?

Redirection status code 301, 302 and 303 are not supported. Use 307 or 308 instead. Redirection status code 301, 302 and 303 are not supported. Use 307 or 308 instead

note : IP sudah whitelist melalui trustedproxy

harrypujianto commented 6 years ago

sebaiknya tidak menggunakan redirection di notif url, sehingga tidak menghasilkan error 300

ferryfernandez commented 6 years ago

@harrypujianto redirection yang dimaksud seperti apa ya pak? karna saya cuma mengconfigurasa URL Notif di MAP dan diarahkan ke controller saya. didalam controllernya tidak ada redirection sama sekali. Terima kasih :D

harrypujianto commented 6 years ago

apakah diarahkan kesini?

Route::post('/vt_notif', 'PagesController@notification');

ferryfernandez commented 6 years ago

Yes diarahkan ke seperti itu, tetapi PagesController diganti ke controller saya

rifkirinaldi commented 6 years ago

@ferryfernandez udah ketemu solusinya mas ?

saya errornya malah : Response status is '419' not '200'

syehbiherbian commented 6 years ago

sama gan saya juga errornya seperti ini, padahal sebelumnya baik baik aja

syehbiherbian commented 6 years ago

Settingan urlnya udah bener belom gan?

vaniawahyu commented 6 years ago

@rifkirinaldi kalau error 419, url untuk midtrans perlu diexclude pada file di laravel: Http/Middleware/VerifyCsrfToken.php

erwinyusrizal commented 6 years ago

ada update ga gan solusi error redirection ini?

yuliantosb commented 6 years ago

I get the same issue here itu kenapa ya pak? Redirection status code 301, 302 and 303 are not supported. Use 307 or 308 instead padahal, sebelum-sebelum nya nggak pernah error seperti itu, ada yang udah solve?

harrypujianto commented 6 years ago

Untuk issue 3xx silahkan di pastikan jika notif url dibuka di browser tidak redirect ke website lain. untuk di repo ini, routenya diarahkan kesini https://github.com/harrypujianto/Veritrans-Laravel5/blob/master/app/Http/Controllers/VtwebController.php#L101

yuliantosb commented 6 years ago

Terimakasih pak :)

agamaeroasia commented 6 years ago

saya menggunakan midtrans untuk 3 web saya, notification url nya harus memanggil function masing-masing web saya. nah redirect nya supaya bisa jalan gimana pak? @harrypujianto

harrypujianto commented 6 years ago

Seharusnya 1 website menggunakan 1 midtrans account. untuk tiap account, notif url dapat di set di setting->configuration->notification url.

ferryfernandez commented 6 years ago

Sorry baru read lagi issue ini, jika mengalami masalah seperti ini kemungkinan besar missmatch CSRFToken saja. Solusinya

  1. daftarkan route notification yg digunakan ke variable $except pada middleware verifyCSRFToken.
  2. jika masih mengalami masalah di function handle() tambahkan kondisi $request->is

contoh

//myroute 'payment/notification' change to your's
if ($request->is('payment/notification')){
   return $this->addCookieToResponse($request, $next($request));
}

semoga membantu

agamaeroasia commented 6 years ago

sudah bisa pak.. saya menggunakan curl untuk mengupdate data di web yang satunya. berikut scriptnya:

function notification(){
        $r = file_get_contents("php://input"); // ambil feedback dari midtrans
        $datamid = json_decode($r);
        $order_id= $datamid->order_id;    

        //cek konfigurasi redirect url sesuai order_id milik web apa di database saya
        $sql = $this->db->query("SELECT link_notif FROM config WHERE order_id='$order_id' ");
        $hasil = $sql->row_array();
        $link = $hasil['link_notif']. "?order_id=".$order_id;

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $link);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($datamid));
        $output = curl_exec($ch);
        curl_close($ch);
}

semoga membantu

rayrizaldi commented 6 years ago

Klo login terus ada bacaan, ip addres tidak ada pada whitelist, padahal sebelumnya tdak terjadi apa2, klo kaya gtu cara mengatasinya biar bisa login kembali bagaimna yah???

RaflyLesmana3003 commented 4 years ago

apakah untuk error 3xx sudah ada yang bisa ngesolve?

ajimatahari commented 4 years ago

saya menemui ini, setelah debug, ada kesalahan di ketelitian saya: route untuk penerima notification handling, saya masukkan di middleware auth. otomatis ketika sandbox mengirimkan notification, akan teredirect ke login (302). setelah saya pindahkan dari auth, murni di web, notification bisa masuk. hanya saja muncul kekuatiran, ketika tidak ada pengautentifikasi di penerima handling, potensi kena bruteforce jadi kebuka.

fakhrurraziandi commented 4 years ago

Hallo, saya nemuin hal yg sama, yaitu "Redirection status code 301, 302 and 303 are not supported. Use 307 or 308 instead."

saya sudah coba hit endpoint nya dan tidak ada redirection apapun .. tapi tetap menghadapi masalah ini.

sudah saya coba hit dari postman dengan data post yg sama persis, tidak terjadi redirect

hilmihidyt commented 4 years ago

ada sudah solve ? saya juga menemui error seperti ini Redirection status code 301, 302 and 303 are not supported. Use 307 or 308 instead. Redirection status code 301, 302 and 303 are not sup

vaniawahyu commented 4 years ago

saya sementara menggunakan \Veritrans_Transaction::status. ada di dokumentasi PHP step 5.

semoga membantu.

intiphp commented 3 years ago

Saya juga mengalami masalah yang sama. Redirection status code 301, 302 and 303 are not supported. Use 307 or 308 instead. dan solusi nya menggati url yg awal nya http:// menjadi https:// dan work. baru ingat di htaccess ada redirect http menjadi https tenyata itu masalah nya.

zairisatria commented 2 years ago

saya mengalami masalah yang sama status code 301,302,303 di CI4.. saya cek saya matikan fungsi csrf tokennya, saya lakukan pembayaran notifikasinya sukses. jadi masalahnya ada di csrf token. cuma saya belum dapat solusi gimana supaya tetap bisa menggunakan csrf tokennya

kwul0208 commented 2 years ago

hallo, saya menemui hal seperti itu ketika menggunakan CI3. sudah solve dengan cara menggunakan controller terpisah.

controller Notification

semoga membantu

herupurwito commented 1 year ago

saya menemui ini, setelah debug, ada kesalahan di ketelitian saya: route untuk penerima notification handling, saya masukkan di middleware auth. otomatis ketika sandbox mengirimkan notification, akan teredirect ke login (302). setelah saya pindahkan dari auth, murni di web, notification bisa masuk. hanya saja muncul kekuatiran, ketika tidak ada pengautentifikasi di penerima handling, potensi kena bruteforce jadi kebuka.

wah nice, ternyata saya juga teledor, masuk middleware auth haha