uddoktapay / laravel-sdk
UddoktaPay为孟加拉国的小企业家提供一系列支付自动化解决方案。
1.0.1
2024-02-12 09:48 UTC
Requires
- php: >=7.4.0
This package is not auto-updated.
Last update: 2024-09-18 07:00:44 UTC
README
UddoktaPay Laravel SDK 允许您无缝地将 UddoktaPay 支付网关集成到您的 Laravel 应用程序中。
目录
安装
在您的项目目录中运行以下命令
composer require uddoktapay/laravel-sdk
用法
初始化 SDK
use UddoktaPay\LaravelSDK\UddoktaPay;
初始化支付
要发起支付,请按照以下步骤操作
- 使用您的 API 密钥和基本 URL 初始化
UddoktaPay
类
$apiKey = "982d381360a69d419689740d9f2e26ce36fb7a50"; // API KEY $apiBaseURL = "https://sandbox.uddoktapay.com/api/checkout-v2"; // API URL $uddoktaPay = new UddoktaPay($apiKey, $apiBaseURL);
- 准备支付请求数据并发起支付
// 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(仅成功页面通知)。
验证支付
要验证支付,请按照以下步骤操作
-
按照前面的步骤初始化
UddoktaPay
类。 -
从支付成功页面获取发票 ID
$invoiceId = $request->invoice_id;
- 验证支付
try { $response = $uddoktaPay->verifyPayment($invoiceId); dd($response); // Display the verification response } catch (\Exception $e) { dd("Verification Error: " . $e->getMessage()); }
处理 IPN 通知(可选)
要处理 IPN(即时支付通知)请求,请按照以下步骤操作
-
按照前面的步骤初始化
UddoktaPay
类。 -
使用
executePayment
方法
try { $ipnResponse = $uddoktaPay->executePayment(); dd($ipnResponse); } catch (\Exception $e) { dd("Error: " . $e->getMessage()); }
注意
- 将
"API KEY"
替换为您的实际 API 密钥。 - 根据项目需求调整请求数据和其它详细信息。
metadata
字段是动态的;您可以根据需要添加多个键值对。- 确保使用上面展示的 try-catch 块来处理错误。