承接 tabbyai/laravel 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

tabbyai/laravel

最新稳定版本:2.1.1

Composer 安装命令:

composer require tabbyai/laravel

包简介

Laravel package for integrating with Tabby.

README 文档

README

The Tabby Laravel Package (tabbyai/laravel) provides an easy-to-use integration with Tabby, a payment gateway service, allowing developers to create seamless checkout sessions within their Laravel applications.

Features

  1. Easy Setup: Install via Composer and configure with API keys.

  2. Checkout Management: Create and retrieve checkout sessions, including payment URLs for easy redirection.

  3. Payment Management: Retrieve, update, capture, refund, close payments, and list payments with filters.

  4. Webhook Management: Register, retrieve, update, and delete webhooks to receive real-time event notifications.

  5. Error Handling: Built-in exception management for smoother integration and user experience.

How to Use

Step 1: Installation

To install the package via Composer, run:

composer require tabbyai/laravel

Step 2: Configuration

Before you use the TabbyService, make sure you have the required API keys and configuration values. You need:

  • merchantCode (your Tabby merchant code)
  • publicKey (your Tabby public key)
  • secretKey (your Tabby secret key)
  • currency (default is SAR but can be changed)

Step 3: Create an Instance of TabbyService

You need to initialize an instance of TabbyService by passing the necessary configuration values.

use Tabby\Services\TabbyService; $tabbyService = new TabbyService( merchantCode: 'your_merchant_code', publicKey: 'your_public_key', secretKey: 'your_secret_key', currency: 'SAR' // Optional, default is SAR );

Step 4: Using Checkout Functions

Creating a Checkout Session

To create a checkout session, you'll need the buyer's information, order details, and shipping address.

use Tabby\Models\Buyer; use Tabby\Models\Order; use Tabby\Models\ShippingAddress; use Tabby\Models\OrderItem; try { // Sample buyer data $buyer = new Buyer( phone: '500000001', email: 'card.success@tabby.ai', name: 'John Doe', dob: '1990-01-01', ); // Sample order data $order = new Order( referenceId: 'order-001', items: [ new OrderItem( title: 'Product Name', category: 'electronics', unitPrice: 100, quantity: 1, referenceId: 'prod-001', description: 'Product Description', ), ], ); // Sample shipping address data $shippingAddress = new ShippingAddress( city: 'Al-Khobar', address: 'Street Address', zip: '12345', ); // Create a checkout session $checkoutSession = $tabbyService->createSession( amount: 200, buyer: $buyer, order: $order, shippingAddress: $shippingAddress, description: 'order description', successCallback: 'https://example.com/success', cancelCallback: 'https://example.com/cancel', failureCallback: 'https://example.com/failure', // lang: 'ar', // optional // buyerHistory: $buyerHistory, // optional // orderHistory: $orderHistory, // optional ); // Fetch the payment url from the checkout session $paymentUrl = $checkoutSession->getPaymentUrl(); // Redirect to the payment page return redirect($paymentUrl); } catch (Exception $e) { // Handle exceptions return response()->json(['error' => $e->getMessage()], 500); }

This will return a CheckoutSession object containing session details.

Retrieving a Checkout Session

To retrieve a previously created checkout session, use the session ID:

$checkoutSession = $tabbyService->retrieveCheckoutSession('session_id_here');

This will return a CheckoutSession object containing session details.

Step 5: Using Payment Functions

Retrieve a Payment

To retrieve details of a specific payment by its ID:

$payment = $tabbyService->retrievePayment('payment_id_here');

Update a Payment

$updatedPayment = $tabbyService->updatePayment( paymentId: 'payment_id_here', // Payment ID referenceId: 'new_reference_id', // Optional updated reference ID deliveryTracking: [ ['tracking_number' => 'xxx', 'courier_code' => 'yyy'] ], );

Capture a Payment

Capture a payment after the transaction:

$capturedPayment = $tabbyService->capturePayment( paymentId: 'payment_id_here', // Payment ID amount: 100.00, // Amount referenceId: 'reference_id_here' // Optional reference ID );

Refund a Payment

$refundedPayment = $tabbyService->refundPayment( paymentId: 'payment_id_here', // Payment ID amount: 50.00, // Amount to refund referenceId: 'reference_id_here', // Optional reference ID reason: 'refund reason' // Optional );

Close a Payment

$closedPayment = $tabbyService->closePayment('payment_id_here');

List of Payments

list($payments, $pagination) = $tabbyService->listPayments( createdAtGte: '', // Optional createdAtLte: '', // Optional status: null, // Optional limit: 10, // Optional offset: 0, // Optional );

Step 6: Using Webhook Functions

Register a Webhook

To register a new webhook for receiving events from Tabby:

$webhook = $tabbyService->registerWebhook( url: 'https://your-domain.com/webhook-url', // URL to receive webhook notifications isTest: true, // Test mode (optional) headerTitle: 'Custom-Header-Title', // Optional headerValue: 'Custom-Header-Value' // Optional );

Retrieve All Webhooks

To retrieve all registered webhooks:

$webhooks = $tabbyService->retrieveAllWebhooks();

Retrieve a Specific Webhook

$webhook = $tabbyService->retrieveWebhook('webhook_id_here');

Update a Webhook

$webhook = $tabbyService->updateWebhook( webhookId: 'webhook_id_here', url: 'https://your-domain.com/webhook-url', // URL to receive webhook notifications isTest: true, // Test mode );

Delete a Specific Webhook

$webhook = $tabbyService->deleteWebhook('webhook_id_here');

Exception Handling

The package throws exceptions for any failed API requests or missing configuration. Ensure to handle them properly in your code to provide a smooth user experience.

try { // your code } catch (Exception $e) { // handle the error }

License

This package is open-source software licensed under the MIT license.

统计信息

  • 总下载量: 743
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 6
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 1
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固