apoca/laravel-sibs-payments
laravel-sibs-payments
Laravel library to communicate with SIBS - Open Payment Platform. The library includes payments: VISA, MASTER, AMEX, VPAY, MAESTRO, VISADEBIT, VISAELECTRON.
Contents
Installation
Require this package with composer. It is recommended to only require the package for development.
composer require apoca/laravel-sibs-payments
Laravel 5.5 uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider.
Laravel 5.5+:
If you don't use auto-discovery, add the ServiceProvider to the providers array in config/app.php
Apoca\Sibs\SibsServiceProvider::class,
If you want to use the facade, add this to your facades in app.php:
'Sibs' => Apoca\Sibs\Facade\Sibs::class,
Copy the package config to your local config with the publish command:
php artisan vendor:publish --provider="Apoca\Sibs\SibsServiceProvider"
Usage
COPYandPAY Integration Guide
- Prepare the checkout
First, perform a server-to-server POST request to prepare the checkout with the required data, including the order type, amount and currency. The response to a successful request is a JSON string with an id, which is required in the second step to create the payment form.
$request = [
'brand' => 'CHECKOUT',
'amount' => 100,
'currency' => 'EUR',
'type' => 'DB',
'optionalParameters' => [],
];
$response = Sibs::checkout($request)->pay();
Response
{
"status": 200,
"response": {
"result":{
"code":"000.200.100",
"description":"successfully created checkout"
},
"buildNumber":"0dbf5028d176bc143baf9657d4d786f6372f4a83@2019-03-29 10:03:17 +0000",
"timestamp":"2019-03-29 11:27:15+0000",
"ndc":"E45186C4789C89A23E66D8DDA57A8586.uat01-vm-tx01",
"id":"E45186C4789C89A23E66D8DDA57A8586.uat01-vm-tx01"
}
}
- Create the payment form
- The checkout's id that you got in the response from step 1
<script src="https://test.oppwa.com/v1/paymentWidgets.js?checkoutId={response->id}"></script>
- The shopperResultUrl, which is the page on your site where the customer should be redirected to after the payment is processed and the brands that will be available.
<form action="{shopperResultUrl}" class="paymentWidgets" data-brands="VISA MASTER AMEX"></form>
- Get the payment status (see step 1)
$response = Sibs::status($response->response->id);
{
"status": 400,
"response": {
"result":{
"code":"200.300.404",
"description":"invalid or missing parameter",
"parameterErrors": [
{
"name": "entityId",
"value": "8a8294185332bbe601533754724914d9",
"message": "is not an allowed parameter"
}
]
},
"buildNumber":"",
"timestamp":"2019-03-29 11:27:15+0000",
"ndc":"89C42801E79302B0E75520C4A793121D.uat01-vm-tx03"
}
}
NOTE: You'll receive and error code 400, because you need an entity key approved by sibs.
Server-to-Server
Sending the request parameters server-to-server and receive the payment response synchronously. NOTE: This integration variant requires you to collect the card data which increases your PCI-compliance scope. If you want to minimize your PCI-compliance requirements, we recommend that you use COPYandPAY.
You can perform different types of initial payments using our server-to-server REST API.
- Preauthorization (PA)
- Debit (DB)
$request = [
'amount' => 102.34,
'currency' => 'EUR',
'brand' => 'VISA',
'type' => 'DB',
'number' => 4200000000000000,
'holder' => 'Jane Jones',
'expiry_month' => 05,
'expiry_year' => 2020,
'cvv' => 123,
'optionalParameters' => [],
];
$response = Sibs::checkout($request)->pay();
Asynchronous Server-to-Server MBWay
In an asynchronous workflow a redirection takes place to allow the account holder to complete/verify the payment. Put the brand parameter equals to "MBWAY" and the type equals to PA. The accountId should be a phone number like this <country_dial_code#phone_number>.
$request = [
'amount' => 10.44,
'currency' => 'EUR',
'brand' => 'MBWAY',
'type' => 'PA',
'accountId' => '351#911222111',
'optionalParameters' => [],
];
$response = Sibs::checkout($request)->pay();
If you are in test mode put the mode parameter on sibs config file equals to test.
Response Example
{
"status": 200,
"response": {
"id":"8ac7a4a26982228701698db398cf05ee",
"paymentType":"DB",
"paymentBrand":"VISA",
"amount":"102.34",
"currency":"EUR",
"descriptor":"2302.8463.4825 OPP_Channel ",
"result":{
"code":"000.100.110",
"description":"Request successfully processed in 'Merchant in Integrator Test Mode'"
},
"card":{
"bin":"420000",
"last4Digits":"0000",
"holder":"Jane Jones",
"expiryMonth":"05",
"expiryYear":"2020"
},
"risk":{
"score":"100"
},
"buildNumber":"699e422a79444128a09e7d5d75eb187a99e8b3f3@2019-03-15 04:42:21 +0000",
"timestamp":"2019-03-17 22:09:12+0000",
"ndc":"8a8294185332bbe601533754724914d9_db6237eaf4b247ca99e4f917c5ca2943"
}
}
See oficial SIBS api reference
Feedback
We'd love to get feedback on how you're using laravel-sibs-payments and things we could add to make this tool better. Feel free to contact us at vieira@miguelvieira.com.pt
Contributing
We'd love to get feedback on how you're using laravel-sibs-payments and things we could add to make this tool better. Feel.
License
This project is licensed under the MIT License - see the LICENSE.md file for details
Author
- Miguel Vieira - Initial work - apoca
See also the list of contributors who participated in this project.
Related Packages
Laravel plugin For Processing Payments Through Paypal Express Checkout. Can Be U...
Laravel plugin For Processing Payments Through Paypal Express Checkout. Can Be U...
Version History
| Version | Released | PHP | License |
|---|---|---|---|
| v1.4.4 | ^7.2 | MIT | |
| v1.4.3 | ^7.2 | MIT | |
| v1.4.2 | ^7.2 | MIT | |
| v1.4.1 | ^7.2 | MIT | |
| v1.4.0 | ^7.2 | MIT | |
| v1.3.1 | ^7.2 | MIT | |
| v1.2.0 | ^7.2 | MIT | |
| v1.1.1 | ^7.2 | MIT | |
| v1.1.0 | ^7.2 | MIT | |
| v1.0.4 | ^7.1 | MIT | |
| v1.0.3 | MIT | ||
| v1.0.2 | MIT | ||
| v1.0.1 | MIT | ||
| v1.0.0 | MIT |
