You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel 8中集成Tabby支付网关(会话创建)

Laravel集成Tabby支付网关:会话创建环节指南

需补充的关键信息

由于原问题信息不完整,为了更精准地解决你的问题,请补充以下内容:

  • 当前使用的Laravel版本
  • 已尝试的具体操作(如是否调用过Tabby API、使用官方SDK还是自定义请求、遇到的具体错误/异常)
  • 项目是否使用了支付相关扩展包(如Cashier)

基础会话创建步骤示例(自定义API调用方案)

1. 配置Tabby密钥与基础URL

在项目根目录的.env文件中添加配置项:

TABBY_API_KEY=你的Tabby API密钥
TABBY_BASE_URL=https://api.tabby.ai/v2

在config/services.php中注册Tabby服务配置:

'tabby' => [
    'api_key' => env('TABBY_API_KEY'),
    'base_url' => env('TABBY_BASE_URL'),
],

2. 创建Tabby服务封装类

新建app/Services/TabbyService.php,统一处理Tabby API调用逻辑:

<?php

namespace App\Services;

use Illuminate\Support\Facades\Http;

class TabbyService
{
    protected $apiKey;
    protected $baseUrl;

    public function __construct()
    {
        $this->apiKey = config('services.tabby.api_key');
        $this->baseUrl = config('services.tabby.base_url');
    }

    /**
     * 创建Tabby支付会话
     * @param array $payload 请求参数
     * @return \Illuminate\Http\Client\Response
     */
    public function createCheckoutSession(array $payload)
    {
        return Http::withHeaders([
            'Authorization' => 'Bearer ' . $this->apiKey,
            'Content-Type' => 'application/json',
        ])->post("{$this->baseUrl}/checkout-sessions", $payload);
    }
}

3. 构建会话请求参数

Tabby会话创建需要符合官方规范的参数结构,示例如下(根据业务场景调整):

$payload = [
    'merchant_code' => '你的商户编码',
    'amount' => '99.99',
    'currency' => 'AED',
    'buyer' => [
        'email' => 'customer@example.com',
        'phone' => '+971501234567',
        'name' => '张三'
    ],
    'order' => [
        'id' => 'ORD-' . time(),
        'items' => [
            [
                'title' => '示例商品',
                'quantity' => 1,
                'unit_price' => '99.99',
                'reference_id' => 'PROD-001'
            ]
        ]
    ],
    'shipping_address' => [
        'city' => '迪拜',
        'address' => '测试街道123号',
        'postal_code' => '12345'
    ],
    'success_url' => route('payment.tabby.success'),
    'failure_url' => route('payment.tabby.failure')
];

4. 控制器中调用服务创建会话

在支付控制器中注入TabbyService,处理会话创建逻辑:

<?php

namespace App\Http\Controllers;

use App\Services\TabbyService;
use Illuminate\Http\Request;

class PaymentController extends Controller
{
    public function initTabbyPayment(Request $request, TabbyService $tabbyService)
    {
        // 构建请求参数(参考上述示例)
        $payload = [...];
        
        $response = $tabbyService->createCheckoutSession($payload);
        
        if ($response->successful()) {
            $sessionData = $response->json();
            // 跳转至Tabby支付页面
            return redirect()->to($sessionData['data']['checkout_url']);
        } else {
            // 处理API调用失败逻辑
            return back()->withErrors([
                'payment_error' => '创建Tabby支付会话失败:' . $response->json('message', '未知错误')
            ]);
        }
    }
}

内容的提问来源于stack exchange,提问作者Yahiya cv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 09:24:19