PHP code example of khidirdotid / midtrans-laravel
1. Go to this page and download the library: Download khidirdotid/midtrans-laravel library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
khidirdotid / midtrans-laravel example snippets
'Midtrans' => KhidirDotID\Midtrans\Facades\Midtrans::class,
\Midtrans::setServerKey($serverKey);
\Midtrans::setClientKey($clientKey);
\Midtrans::setProduction(true);
\Midtrans::set3ds(true);
\Midtrans::setAppendNotifUrl(route('midtrans.ipn'));
\Midtrans::setOverrideNotifUrl(route('midtrans.ipn'));
$params = [
'transaction_details' => [
'order_id' => rand(),
'gross_amount' => 10000
]
];
$snapToken = \Midtrans::getSnapToken($params);
$params = [
'transaction_details' => [
'order_id' => rand(),
'gross_amount' => 10000
]
];
try {
// Get Snap Payment Page URL
$paymentUrl = \Midtrans::createTransaction($params)->redirect_url;
// Redirect to Snap Payment Page
return redirect()->away($paymentUrl);
} catch (\Throwable $th) {
throw $th;
}
$transaction_details = [
'order_id' => time(),
'gross_amount' => 200000
];
// Populate items
$items = [
[
'id' => 'item1',
'price' => 100000,
'quantity' => 1,
'name' => 'Adidas f50'
],
[
'id' => 'item2',
'price' => 50000,
'quantity' => 2,
'name' => 'Nike N90'
]
];
// Populate customer's billing address
$billing_address = [
'first_name' => "Andri",
'last_name' => "Setiawan",
'address' => "Karet Belakang 15A, Setiabudi.",
'city' => "Jakarta",
'postal_code' => "51161",
'phone' => "081322311801",
'country_code' => 'IDN'
];
// Populate customer's shipping address
$shipping_address = [
'first_name' => "John",
'last_name' => "Watson",
'address' => "Bakerstreet 221B.",
'city' => "Jakarta",
'postal_code' => "51162",
'phone' => "081322311801",
'country_code' => 'IDN'
];
// Populate customer's info
$customer_details = [
'first_name' => "Andri",
'last_name' => "Setiawan",
'email' => "[email protected] ",
'phone' => "081322311801",
'billing_address' => $billing_address,
'shipping_address' => $shipping_address
];
// Transaction data to be sent
$transaction_data = [
'payment_type' => 'bank_transfer',
'bank_transfer' => [
'bank' => 'bca'
],
'transaction_details' => $transaction_details,
'item_details' => $items,
'customer_details' => $customer_details
];
$response = \Midtrans::charge($transaction_data);
Route::match(['GET', 'POST'], 'midtrans.ipn', [PaymentController::class, 'midtransIpn'])->name('midtrans.ipn');
public function midtransIpn(Request $request)
{
try {
$response = \Midtrans::status($request->transaction_id);
if (in_array($response->transaction_status, ['settlement', 'capture']) && $response->fraud_status === 'accept') {
// TODO: Set payment status in merchant's database to 'success'
}
} catch (\Throwable $th) {
throw $th;
}
}
protected $except = [
'midtrans/ipn'
];
bash
php artisan vendor:publish --provider="KhidirDotID\Midtrans\Providers\MidtransServiceProvider"