Trying to get property 'status_code' of non-object
mamlzy opened this issue · 5 comments
Ada yang bisa bantu masalah ini?
error ketika mengambil status transaksi, padahal id didalam "$request->id" sudah sesuai dengan data transaksi yang sudah ada di midtrans
public function paymentHistory(Request $request)
{
$status = \Midtrans\Transaction::status($request->id);
dd($status);
$status = json_decode(json_encode($status), true);
$va_number = $status['va_numbers'][0]['va_number'];
$gross_amount = $status['gross_amount'];
$bank = $status['va_numbers'][0]['bank'];
$transaction_status = $status['transaction_status'];
$transaction_time = $status['transaction_time'];
$deadline = date('Y-m-d H:i:s', strtotime('+1 day', strtotime($transaction_time)));
}
error nya seperti ini
ErrorException: Trying to get property 'status_code' of non-object in file /opt/lampp/htdocs/api-spp/vendor/midtrans/midtrans-php/Midtrans/ApiRequestor.php on line 102
Hi @ImamAlfariziSyahputra silahkan pastikan kembali value isProduction, serverKey dan orderId sudah sesuai, pastikan pola struktur order-id anda tidak terdapat spesial karakter yang dapat mengakibatkan struktur URL invalid, jika terdapat spesial karakter pada order_id Anda, untuk mencegahnya Anda dapat menggunakan transaction_id
Midtrans sebagai parameter untuk melakukan request API get status. Untuk pertanyaan spesifik silahkan tanyakan via email support@midtrans.com
Terima kasih
saya sudah coba untuk pakai id, order_id, dan transaction_id. Tetapi tetap mendapat error yang sama
ini request yang saya kirim ke backend
{
"bill_key": (...),
"biller_code": (...),
"finish_redirect_url": (...),
"fraud_status": (...),
"gross_amount": (...),
"order_id": "9994",
"payment_type": (...),
"pdf_url": (...),
"status_code": "201",
"status_message": "Transaksi sedang diproses",
"transaction_id": "05cac04f-e6bf-4d70-a4c2-56c46a5b6ded",
"transaction_status": "pending",
"transaction_time": "2021-03-26 14:24:41"
}
Hi @ImamAlfariziSyahputra pastikan paremeter $request->id
pada object $request
tidak bernilai null. Jika anda mengirimkan request body seperti diatas. Possible parameter yang dikirimkan saat melakukan get status melalui \Midtrans\Transaction::status($request->id);
bernilai null, karena request diatas yang Anda kirim tidak terdapat key id
Saya pernah mengalami hal tersebut, saya sudah memastikan bahwa object $request
tidak bernilai null dan lain sebagainya tetapi hasilnya tetap sama. Tetapi setelah diteliti lagi ternyata saya tidak mengonfigurasikan General Settings sebelum merequest ke Midtrans, seperti serverKey, isProduction, dan isSanitized.
Jadi akan seperti ini kodenya, kalau di Laravel dengan memanfaatkan konfigurasi midtrans yang sudah saya set sebelumnya di folder config:
use Midtrans\Config;
use Midtrans\Transaction;
public function paymentHistory(Request $request)
{
//General Settings
Config::$serverKey = config("midtrans.serverKey");
Config::$isProduction = config("midtrans.isProduction");
Config::$isSanitized = config("midtrans.isSanitized");
Config::$is3ds = config("midtrans.is3ds");
$status = Transaction::status($request->id);
dd($status);
$status = json_decode(json_encode($status), true);
$va_number = $status['va_numbers'][0]['va_number'];
$gross_amount = $status['gross_amount'];
$bank = $status['va_numbers'][0]['bank'];
$transaction_status = $status['transaction_status'];
$transaction_time = $status['transaction_time'];
$deadline = date('Y-m-d H:i:s', strtotime('+1 day', strtotime($transaction_time)));
}
//Ketika saya nonaktifkan konfigurasinya akan menjadi seperti ini
Terima Kasih @rplb1819-06-auliaelihzafarizrafiqi atas bantuannya...
Saya kira jika sudah membuat konfigurasi midtrans pada suatu function tidak perlu membuat konfigurasi lagi,
dalam kasus ini saya sudah melakukan konfigurasi pada function untuk mengambil Snap Token.
setelah saya membuat konfigurasi lagi untuk function "paymentHistory", saya berhasil mendapatkan status transaksinya.
terima kasih semua