uddoktapay/laravel-sdk

UddoktaPay为孟加拉国的小企业家提供一系列支付自动化解决方案。

1.0.1 2024-02-12 09:48 UTC

This package is not auto-updated.

Last update: 2024-09-18 07:00:44 UTC


README

UddoktaPay Logo

UddoktaPay Laravel SDK 允许您无缝地将 UddoktaPay 支付网关集成到您的 Laravel 应用程序中。

目录

安装

在您的项目目录中运行以下命令

composer require uddoktapay/laravel-sdk

用法

初始化 SDK

use UddoktaPay\LaravelSDK\UddoktaPay;

初始化支付

要发起支付,请按照以下步骤操作

  1. 使用您的 API 密钥和基本 URL 初始化 UddoktaPay
$apiKey = "982d381360a69d419689740d9f2e26ce36fb7a50"; // API KEY
$apiBaseURL = "https://sandbox.uddoktapay.com/api/checkout-v2"; // API URL
$uddoktaPay = new UddoktaPay($apiKey, $apiBaseURL);
  1. 准备支付请求数据并发起支付
// Example request data for initializing a payment
$requestData = [
    'full_name'     => "John Doe",
    'email'         => "test@test.com",
    'amount'        => 10,
    'metadata'      => [
        'example_metadata_key' => "example_metadata_value",
        // ... Add more key-value pairs for dynamic metadata ...
    ],
    'redirect_url'  => 'https:///success.php', // add your success route
    'return_type'   => 'GET',
    'cancel_url'    => 'https:///cancel.php', // add your cancel route
    'webhook_url'   => 'https:///ipn.php', // add your ipn route
];

try {
    $paymentUrl = $uddoktaPay->initPayment($requestData);
    return redirect($paymentUrl);
} catch (\Exception $e) {
     dd("Initialization Error: " . $e->getMessage());
}

可用的 API 类型

initPayment 方法允许您将 API 类型指定为第二个参数。可用的选项包括:

  • checkout:基本结账 API(仅 IPN 通知)。
  • checkout-v2:高级结账 API(默认,仅成功页面通知)。
  • checkout/global:全球基本结账 API(仅 IPN 通知)。
  • checkout-v2/global:全球高级结账 API(仅成功页面通知)。

验证支付

要验证支付,请按照以下步骤操作

  1. 按照前面的步骤初始化 UddoktaPay 类。

  2. 从支付成功页面获取发票 ID

$invoiceId = $request->invoice_id;
  1. 验证支付
try {
    $response = $uddoktaPay->verifyPayment($invoiceId);
    dd($response); // Display the verification response
} catch (\Exception $e) {
    dd("Verification Error: " . $e->getMessage());
}

处理 IPN 通知(可选)

要处理 IPN(即时支付通知)请求,请按照以下步骤操作

  1. 按照前面的步骤初始化 UddoktaPay 类。

  2. 使用 executePayment 方法

try {
    $ipnResponse = $uddoktaPay->executePayment();
    dd($ipnResponse);
} catch (\Exception $e) {
     dd("Error: " . $e->getMessage());
}

注意

  • "API KEY" 替换为您的实际 API 密钥。
  • 根据项目需求调整请求数据和其它详细信息。
  • metadata 字段是动态的;您可以根据需要添加多个键值对。
  • 确保使用上面展示的 try-catch 块来处理错误。