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 protected]",
"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.