pw / laramidtrans
A Midtrans Payment Wrapper for Laravel
Installs: 11
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:package
Requires
- php: >=5.6.4
- guzzlehttp/guzzle: ^6.3
- illuminate/support: 5.1.x|5.2.x|5.3.x|5.4.x|5.5.x|5.6.x|5.7.x
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0|~5.0
- vlucas/phpdotenv: ^2.4
This package is not auto-updated.
Last update: 2024-11-22 13:35:17 UTC
README
Installation
First, require the package in composer.json by
composer require pw/laramidtrans
After require the package, open config/app.php
to add the ServiceProvider and Facade by following below:
Pw\Midtrans\MidtransServiceProvider::class,
For the convenience when using the package, you can optionally add the Facade too by
'Midtrans' => Pw\Midtrans\Facades\Midtrans::class,
'Veritrans' => Pw\Midtrans\Facades\Veritrans::class,
There are two facades because the endpoint of the services from Midtrans is different (Veritrans is the old one) and they already change their names to Midtrans. So, choose your partnership with Midtrans to choose the right Facade for you.
Configuration
Before using the package, it's better to publish the config file first to make you can set the environment
, server_key
and client_key
php artisan vendor:publish --provider="Pw\Midtrans\MidtransServiceProvider"
Running command above will copy a config file to your project directory config/midtrans.php
and you can set the variable. To set the variables, it's better to put in the .env file rather than change it directly on the config file, so in your .env file put
`MIDTRANS_IS_PRODUCTION`, `MIDTRANS_CLIENT_KEY` and `MIDTRANS_SERVER_KEY`
based on your key that's on your midtrans dashboard.
Using
You can create package instance easily by
App::make('Midtrans');
This depends on what type of payment you will use for your payment method.
If you want to use the easiest way by using the facade but make sure to use the facade on top of your file.
Sample for Midtrans Facade
<?php
namespace you/project/namespace/controller;
use Midtrans;
class Payment extends Controller {
public function purchase() {
$transaction_details = [
'order_id' => time(),
'gross_amount' => 10000
];
$customer_details = [
'first_name' => 'User',
'email' => 'user@gmail.com',
'phone' => '08238493894'
];
$custom_expiry = [
'start_time' => date("Y-m-d H:i:s O", time()),
'unit' => 'day',
'duration' => 2
];
$item_details = [
'id' => 'PROD-1',
'quantity' => 1,
'name' => 'Product-1',
'price' => 10000
];
// Send this options if you use 3Ds in credit card request
$credit_card_option = [
'secure' => true,
'channel' => 'migs'
];
$transaction_data = [
'transaction_details' => $transaction_details,
'item_details' => $item_details,
'customer_details' => $customer_details,
'expiry' => $custom_expiry,
'credit_card' => $credit_card_option,
];
$token = Midtrans::getSnapToken($transaction_data);
return $token;
}
}
Sample for Veritrans Facade
<?php
namespace you/project/namespace/controller;
use Veritrans;
class Payment extends Controller {
public function purchase() {
$transaction_details = [
'order_id' => time(),
'gross_amount' => 10000
];
$customer_details = [
'first_name' => 'User',
'email' => 'user@gmail.com',
'phone' => '08238493894'
];
$custom_expiry = [
'start_time' => date("Y-m-d H:i:s O", time()),
'unit' => 'day',
'duration' => 2
];
$item_details = [
'id' => 'PROD-1',
'quantity' => 1,
'name' => 'Product-1',
'price' => 10000
];
$transaction_data = [
'payment_type' => 'vtweb',
'vtweb' => [
'credit_card_3d_secure' => true
],
'transaction_details' => $transaction_details,
'item_details' => $item_details,
'customer_details' => $customer_details
];
$redirect_url = Veritrans::vtwebCharge($transaction_data);
return $redirect_url;
}
}
Available Function
Midtrans
Midtrans::getSnapToken($data);
getSnapToken
will take array
data as parameter that passed to the function and will return string
of token.
Midtrans::status($order_id);
status
function will take order_id
in any type of data (preferable string
or integer
) type for requesting the status of payment.
Midtrans::approve($order_id);
approve
function will take order_id
in any type of data (preferable string
or integer
) and will return status_code
.
Midtrans::cancel($order_id);
cancel
function will take order_id
in any type of data (preferable string
or integer
) and will return status_code
.
Midtrans::expire($order_id);
expire
function will take order_id
in any type of data (preferable string
or integer
).