PayTabs Laravel Package makes integration with the PayTabs payment gateway very easy by providing a ready-made payment class that handles the card entry and, billing & shipping information and completes the missing details.
To capture a transaction means that the previously authorized amount from a previous auth transaction will be captured/transferred from the cardholder's bank account to your bank account. In this article, we walk you through how to use and manage the below function:
Paypage::capture('tran_ref','order_id','amount','capture description');
Capture request is ONLY available for successfully Authorized (Auth) transactions.
Through out the article we will use the transaction types clarified in our What is "tran_type"? solution article. .
Transaction Reference
The Parameter Tag/Name | tran_ref |
Example | $tran_ref = "TST2016700000692"; |
Data Type | STRING |
Required | ✔ |
Purpose | Indicates the reference to the "Auth" transaction you want to capture |
Validation Rules | Accept only valid "Auth" transaction references. |
Order Id
The Parameter Tag/Name | order_id |
Example | $order_id = "CART#1001"; |
Data Type | STRING |
Required | ✔ |
Purpose | Indicates the cart id to the transaction you want to create |
Amount
The Parameter Tag/Name | amount |
Example | $amount = 100.50 |
Data Type | DECIMAL |
Required | ✔ |
Purpose | Indicates the amount you want to capture, either the full amount for a full capture or partial one for partial capture. |
Validation Rules | Accept only decimal amounts, which must be less than or equal to the authorized amount that has not been captured yet. |
Description
The Parameter Tag/Name | description |
Example | $description = "order description"; |
Data Type | STRING |
Required | ✔ |
Purpose | Indicates the cart/order description at your end to easily relate this transaction to. It might contain the reason for the capture. |
Sample Request
To process a capture request, you have to pass a tran_type that MUST be “capture” and the transaction reference of the original authenticated "Auth" transaction that you want to capture, as shown in the below sample:
$capture = Paypage::capture('tran_ref','order_id','amount','capture description'); return $capture;
Capture request is ONLY available for successfully Authorized (Auth) transactions.
Sample Response Payload
The response PayTabs will send to you will be a JSON object that contains the full details regarding this capture transaction as shown below:
{ "tran_ref": "TST2111100150569", "tran_type": "Capture", "cart_id": "cart_11111", "cart_description": "Description of the items/services", "cart_currency": "USD", "cart_amount": "200.00", "callback": "https://webhook.site/4b3af623-085f-4b82-ab22-cb6cedeba218", "customer_details": { "name": "first last", "email": "email@domain.com", "phone": "0522222222", "street1": "address street", "city": "dubai", "state": "DU", "country": "AE", "ip": "1.1.1.1" }, "payment_result": { "response_status": "A", "response_code": "G97564", "response_message": "Authorised", "transaction_time": "2021-04-21T09:32:44Z" }, "payment_info": { "card_type": "Credit", "card_scheme": "Visa", "payment_description": "4111 11## #### 1111" } }
⌂ To get familiar with the whole process and the other steps, kindly navigate to our "The Laravel Packge Integration Manual" solution article.
⇦ And to get familiar with the rest of the steps regarding the current step "Step 7 - Manage Transactions" kindly click here.
⇦ And to navigate to the previous step in the integration process "Step 6 - Handle the post payment responses" kindly click here.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article