granada-pride/paytabs

此包提供与PayTabs支付网关的集成

v2.4.0 2024-08-25 22:09 UTC

This package is auto-updated.

Last update: 2024-09-27 14:35:36 UTC


README

目录

  1. 描述
  2. 安装
  3. 配置
  4. 用法
  5. 故障排除
  6. 测试
  7. 贡献
  8. 许可证

描述

PayTabs支付网关与Laravel框架集成

安装

您可以通过composer安装此包

composer require granada-pride/paytabs

注意: 此包与Laravel 9及以上版本兼容。在安装之前,请确保您的应用程序满足此要求。

配置

安装后,使用以下命令发布配置文件

php artisan vendor:publish --provider="GranadaPride\Paytabs\PaytabsServiceProvider"

配置文件paytabs.php将被添加到您的config目录中。以下是一个示例配置

return [
    'profile_id' => env('PAYTABS_PROFILE_ID'),
    'server_key' => env('PAYTABS_SERVER_KEY'),
    'currency' => env('PAYTABS_CURRENCY'),
    'region' => env('PAYTABS_REGION'),
];

配置选项

  • profile_id: 您的PayTabs配置文件ID,用于API请求。
  • server_key: 您的PayTabs服务器密钥,用于认证。
  • currency: 处理支付的货币代码(例如,USD)。
  • region: 您的PayTabs账户所在的地区(例如,ARE,SAU)。

用法

创建PayPage

以下是使用此包创建支付页面的方法

use GranadaPride\Paytabs\Paytabs;
use GranadaPride\Paytabs\DTO\CustomerDetails;

$paytabs = Paytabs::make();

// Set Cart Information
$paytabs->setCart('CART123', 150.00, 'Sample Cart Description');

// Set Customer Information using the CustomerDetails DTO
$customerDetails = new CustomerDetails(
    name: 'John Doe',
    phone: '+123456789',
    email: 'johndoe@example.com',
    street: '123 Main St',
    city: 'Cityville',
    state: 'Stateland',
    country: 'US',
    zipCode: '12345'
);

$paytabs->setCustomer($customerDetails);

// Option 1: Use Customer Information for Shipping if it's the same
$paytabs->useCustomerForShipping();

// Option 2: Set Shipping Information separately if it's different
$shippingDetails = new CustomerDetails(
    name: 'Jane Doe',
    phone: '+987654321',
    email: 'janedoe@example.com',
    street: '456 Market St',
    city: 'Townsville',
    state: 'Regionland',
    country: 'US',
    zipCode: '54321'
);

$paytabs->setShipping($shippingDetails);

// Set URLs and Language
$paytabs->setCallbackUrl('https://yourdomain.com/callback')
        ->setReturnUrl('https://yourdomain.com/return')
        ->setPaypageLang('en');

// Generate Payment Page
$response = $paytabs->paypage();

// Handle the response
dd($response);

查询交易

您也可以使用引用查询交易

use GranadaPride\Paytabs\Paytabs;

$response = Paytabs::make()
    ->queryTransaction('TST2422201903602');

dd($response);

故障排除

常见问题

  • 无效凭据:请确保配置文件中的profile_id和server_key正确。
  • 不支持的地区:请再次检查配置文件中的地区是否有效并受PayTabs支持。
  • 交易失败:请验证交易数据(例如,购物车金额,客户详情)以确保其符合PayTabs的要求。

如果您遇到其他问题,请参阅PayTabs API文档以获取更多详细信息。

测试

即将推出...

贡献

欢迎贡献!如果您想为此包做出贡献,请按照以下步骤操作

  1. 复制仓库。
  2. 为您的功能或错误修复创建新分支。
  3. 编写您的代码并确保其具有良好的文档。
  4. 提交包含对更改的明确描述的pull请求。

许可证

此包是开源软件,根据MIT许可证授权。