Download the PHP package bsecure/bsecure-laravel without Composer
On this page you can find all versions of the php package bsecure/bsecure-laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download bsecure/bsecure-laravel
More information about bsecure/bsecure-laravel
Files in bsecure/bsecure-laravel
Package bsecure-laravel
Short Description Pakistan's first universal checkout solution for e-commerce stores built on woocommerce, magento, shopify and more
License MIT
Homepage https://github.com/bSecureCheckout/bsecure-laravel
Informations about the package bsecure-laravel
bSecure Checkout
Pakistan's first universal checkout solution that is easy and simple to integrate on your e-commerce store.
About bSecure Checkout
It gives you an option to enable universal-login, two-click checkout and accept multiple payment method for your customers, as well as run your e-commerce store hassle free.\ It is built for desktop, tablet, and mobile devices and is continuously tested and updated to offer a frictionless payment experience for your e-commerce store.
Installation
You can install the package via composer
composer require bSecure/bsecure-laravel
Prerequisites
PHP 7.2.5 and above
Dependencies
"guzzlehttp/guzzle": "^7.2"
Usage
Configuration Setup
By following a few simple steps, you can set up your bSecure Checkout and Single-Sign-On.
Getting Your Credentials
- Go to Partners Portal
- App Integration >> Sandbox / Live
- Select Environment Type (Custom Integration)
- Fill following fields:\ a. Store URL its required in any case\ b. Login Redirect URL Required for feature Login with bSecure\ c. Checkout Redirect URL Required for feature Pay with bSecure\ d. Checkout Order Status webhook Required for feature Pay with bSecure
- Save your client credentials (Client ID and Client Secret)
- Please make sure to keep credentials at safe place in your code
bSecure Checkout
Add provider for bSecure checkout in app.php
bSecure\UniversalCheckout\CheckoutServiceProvider::class
Add alias
'BsecureCheckout' => bSecure\UniversalCheckout\BsecureCheckout::class
Publish the language file.
php artisan vendor:publish --provider="bSecure\UniversalCheckout\CheckoutServiceProvider"
It will create a vendor/bSecure folder inside resources/lang folder. If you want to customize the error messages your can overwrite the file.
Publish the configuration file
php artisan vendor:publish --provider="bSecure\UniversalCheckout\CheckoutServiceProvider" --tag="config"
A file (bSecure.php) will be placed in config folder.
Examples
Create Order
To create an order you should have an order_id, customer and products object parameters that are to be set before creating an order.
Create Order Request Params:
Product Object:
Products object should be in below mentioned format:
Product Options Object:
Products object should be in below mentioned format:
Shipment Object
Shipment object should be in below mentioned format:
1- If the merchant want his pre-specified shipment method then he should pass shipment method detail in below mentioned format:
Customer Object
Customer object should be in below mentioned format:
1- If the customer has already signed-in via bSecure into your system and you have auth-code for the customer you can just pass that code in the customer object no need for the rest of the fields.
2- Since all the fields in Customer object are optional, if you don’t have any information about customer just pass the empty object, or if you have customer details then your customer object should be in below mentioned format:
Create Order
In response createOrder(), will return order expiry, checkout_url, order_reference and merchant_order_id.
If you are using a web-solution then simply redirect the user to checkout_url
If you have Android or IOS SDK then initialize your sdk and provide order_reference to it
When order is created successfully on bSecure, you will be redirected to bSecure SDK or bSecure checkout app where you will process your checkout.
Callback on Order Placement
Once the order is successfully placed, bSecure will redirect the customer to the url you mentioned in “Checkout redirect url” in your environment settings in Partners Portal, with one additional param “order_ref” in the query string.
Order Updates
By using order_ref you received in the "Callback on Order Placement" you can call below method to get order details.
Order Status Change Webhook
Whenever there is any change in order status or payment status, bSecure will send you an update with complete order details (contents will be the same as response of Order Updates) on the URL you mentioned in Checkout Order Status webhook in your environment settings in Partners Portal. (your webhook must be able to accept POST request).
In response of "Order Updates" you will recieve complete details of your order in below mentioned format:
Managing Orders and Payments
Payment Status
ID | Value | Description |
---|---|---|
0 | Pending | Order received, no payment initiated.Awaiting payment (unpaid). |
1 | Completed | Order fulfilled and complete. Payment also recieved. |
2 | Failed | Payment failed or was declined (unpaid) or requires authentication. |
Order Status
ID | Value | Description |
---|---|---|
1 | Created | A customer created an order but not landed on bsecure |
2 | Initiated | Order is awaiting fulfillment. |
3 | Placed | Order fulfilled and complete Payment received. Order is awaiting fulfillment. – requires no further action |
4 | Awaiting Confirmation | Awaiting action by the customer to authenticate the transaction. |
5 | Canceled | Canceled by an admin or the customer. |
6 | Expired | Orders that were not fulfilled within a pre-specified timeframe. timeframe |
7 | Failed | Payment failed or was declined (unpaid).Note that this status may not show immediately and instead show as Pending until verified |
8 | Awaiting Payment | Order received, no payment initiated. Awaiting payment (unpaid) |
bSecure Single Sign On (SSO)
Add provider for bSecure checkout and single-sign-on in app.php
bSecure\UniversalCheckout\SSOServiceProvider::class
Add alias
'BsecureSSO' => bSecure\UniversalCheckout\BsecureSSO::class
Publish the language file.
php artisan vendor:publish --provider="bSecure\UniversalCheckout\SSOServiceProvider"
It will create a vendor/bSecure folder inside resources/lang folder. If you want to customize the error messages your can overwrite the file.
Publish the configuration file
php artisan vendor:publish --provider="bSecure\UniversalCheckout\SSOServiceProvider" --tag="config"
A file (bSecure.php) will be placed in config folder.
Before using bSecure SSO, you will also need to add credentials for the OAuth services your application utilizes. These credentials should be placed in your config/bSecure.php configuration file. For example:
Routing
Next, you are ready to authenticate users! You will need two routes: one for redirecting the user to the OAuth provider, and another for receiving the customer profile from the provider after authentication. We will access BsecureSSO using the BsecureSSO Facade:
Authenticate Client
Client Authentication is of two type sdk and web client validation.
If you are using a web-solution then use below method
In response, authenticateWebClient will return redirect_url, then simply redirect the user to redirect_url
If you are using a sdk-solution then use below method
In response, authenticateSDKClient will return request_id, merchant_name and store_url which you have to pass it to your SDK.
Client Authorization
On Successful Authorization,\ bSecure will redirect to Login redirect url you provided when setting up environment in Partners portal, along with two parameters in query string: code and state
code recieved in above callback is cutsomer's auth_code which will be further used to get customer profile.
Verify Callback
Verify the state you received in the callback by matching it to the value you stored in DB before sending the client authentication request, you should only proceed if and only if both values match.
Get Customer Profile
Auth_code recieved from Client Authorization should be passed to method below to get customer profile.
In response, it will return customer name, email, phone_number, country_code, address book.
Changelog
Please see CHANGELOG for more information what has changed recently.
License
The MIT License (MIT). Please see License File for more information.
Contributions
"bSecure – Your Universal Checkout" is open source software.