A non-official package that help you to implements WinPay Payment Gateway (winpay.id) into your Laravel applications
Install the package via composer :
$ composer require mu-hasan/laravel-winpay "^0.0.1"
Add this lines into your .env
file and fill with your WinPay credentials :
# ...
WINPAY_HOST=putWinpayHostHere
WINPAY_PK1=putWinpayPrivateKey1Here
WINPAY_PK2=putWinpayPrivateKey2Here
WINPAY_MK=putWinpayMerchantKeyHere
WINPAY_LISTENER=putWinpayListenerPathHere
Please register the service provider :
// config/app.php
'Providers' => [
// ...
/*
* Package Service Providers...
*/
MuHasan\LaravelWinpay\WinpayServiceProvider::class,
// ...
]
You could use the facade by add this line :
// config/app.php
'aliases' => [
// ...
'Winpay' => MuHasan\LaravelWinpay\WinpayFacade::class,
];
Please publish the config file to define your WinPay credentials :
$ php artisan vendor:publish --provider="MuHasan\LaravelWinpay\WinpayServiceProvider"
Please add this line to the bootstrap/app.php
file
$app->configure('laravel-winpay');
//...
$app->register(MuHasan\LaravelWinpay\WinpayServiceProvider::class);
You could get the config file from this laravel-winpay.php. Then copy it into config/laravel-winpay.php
For now, this package only support getToolbar
and getPaymentCode
.
From the documentation, this function will be return list of payment channel. You can use like this:
winpay()->getToolbar();
// OR
Winpay::getToolbar();
From the documentation, this function will be return payment code of choosen payment channel and transaction details. You can use like this:
winpay()->getPaymentCode($paymentChannel, $transaction, $user, $items);
// OR
Winpay::getToolbar($paymentChannel, $transaction, $user, $items);
You must passing $paymentChannel
parameter from one of getToolbar()
response.
The $transaction
parameter you must passing the model that implements MuHasan\LaravelWinpay\BillingTransaction
interface and define the getBillTransactionEndAt()
, getBillTransactionReff()
, and getBillTransactionAmount()
functions into it.
class FooTransaction extends Model implements BillingTransaction
{
//...
public function getBillTransactionEndAt(): \DateTime
{
return $this->reff;
}
public function getBillTransactionReff(): string
{
return $this->reff;
}
public function getBillTransactionAmount(): int
{
return $this->total;
}
//...
}
The $user
parameter you must passing the model that implements MuHasan\LaravelWinpay\BillingUser
interface and define the getgetBillUserName()
, getgetBillUserPhone()
, and getgetBillUserEmail()
functions into it.
class FooUser extends Model implements BillingUser
{
//...
public function getBillUserName(): string
{
return $this->name;
}
public function getBillUserPhone(): string
{
return $this->phone;
}
// nullable
public function getBillUserEmail(): ?string
{
return $this->email;
// OR
// return null;
}
//...
}
The $items
parameter you must passing array of the model that implements MuHasan\LaravelWinpay\BillingItem
interface and define the getBillItemName()
, getBillItemQty()
, getBillItemUnitPrice()
, getBillItemSku()
, and getBillItemDesc()
functions into it.
class FooItem extends Model implements BillingItem
{
//...
public function getBillItemName(): string
{
return $this->name;
}
public function getBillItemQty(): int
{
return $this->qty;
}
public function getBillItemUnitPrice(): int
{
return $this->amount;
}
// nullable
public function getBillItemSku(): ?string
{
return $this->short_id;
// OR
// return null;
}
// nullable
public function getBillItemDesc(): ?string
{
return $this->note;
// OR
// return null;
}
//...
}