susutawar/laravel-duitku

DuitKu Api 对 laravel 的实现

0.0.1 2024-05-15 11:51 UTC

This package is auto-updated.

Last update: 2024-09-15 12:28:43 UTC


README

DuitKu API 在 laravel 中的实现。最初是为了个人使用而制作的,因此可能存在一定的偏差。

安装

composer install susutawar/duitku-laravel

php artisan vendor:publish --tag="duitku"

配置

将以下内容添加到您的 .env 文件中。

DUITKU_MERCHANT_ID=
DUITKU_API_KEY=
DUITKU_SANDBOX_MODE=
DUITKU_RETURN_URL=
  • 填写 DUITKU_MERCHANT_IDDUITKU_API_KEY,这两个凭据可以从 duitku 获取。
  • DUITKU_SANDBOX_MODE 设置为 1 以使用 DuitKu 的沙盒模式,或设置为 0 以在生产模式下使用它。
  • 设置 DUITKU_RETURN_URL 为您配置的任何路由。这将被 DuitKu (查看文档) 使用。值可以是路由名称或 URL。

您可以在 config/duitku.php 中查看更多设置/信息。

使用方法

获取支付

从 DuitKu 获取可用的支付方式。 查看文档

use SusuTawar\Facade\Duitku;

// ...

// the result is a Laravel Collection
$paymentMethods = Duitku::getPayments($paymentAmount);

进行交易

使用 DuitKu 开始交易。 查看文档

use SusuTawar\Facade\Duitku;

// ...

$paymentMethods = Duitku::makeTransaction(/* params */);

返回的对象包含 trxurlqrva

  • trx:DuitKu 生成的交易号。将其保存到您的系统中。
  • url:DuitKu 交易页面的链接。
  • qr:表示 QRIS 的字符串。您必须自己从这个字符串生成 QR 图像。
  • va:支持该支付方式的虚拟账户号码。

检查交易

使用您的交易 ID 检查交易状态。 查看文档

use SusuTawar\Facade\Duitku;

// ...

$checkResult = Duitku::check($yourTransactionId);

错误处理

当发生意外情况时,我们不会返回 falsenull,而是抛出一个 Exception。您可以通过其特定类型捕获异常,或者通过 Exception 捕获所有异常,然后使用提供的信息。

  • DuitKuAuthException:当提供的认证凭据无法由 DuitKu 认证时发生。
  • DuitKuBadRequestException:当提供的参数不符合 DuitKu 时发生。
  • DuitKuNotFoundException:当指定的资源在 DuitKu 中不可用时发生。
  • DuitKuPaymentException:当支付过程中出现问题时发生。

回调路由

我们自动注册了 回调 路由。要处理传入的回调,创建一个实现 SusuTawar\Interfaces\DuitKuCallbackInterface 的类,并在 config/duitku.php 下的 routing.callback_handler 中注册它

"routing" => [
  // ...
  "callback_handler" => MyCallbackHandler::class,
]

如果您更喜欢手动设置回调,通过更新配置来禁用此功能

"routing" => [
  "enabled" => false,
  // ...
]

当此功能被禁用时,您需要设置 callback_url 或将 DUITKU_CALLBACK_URL 添加到您的 .env 文件中。否则,callback_url 将默认为 home/