otnansirk/laravel-dana

这是一个用于DANA支付API的Laravel包装器

v2.3.0 2024-08-07 04:26 UTC

This package is auto-updated.

Last update: 2024-09-07 04:44:35 UTC


README

这是DANA支付API的Laravel包装器/库。访问https://dana.id获取更多关于产品的信息,并查看https://dashboard.dana.id/api-docs获取更多技术细节。

安装

1. 您可以通过Composer安装此包。

composer require otnansirk/laravel-dana

2. 可选:服务提供程序将自动注册。或者您也可以手动在您的configs/app.php文件中添加服务提供程序。

'providers' => [
    // ...
    Otnansirk\Dana\DanaCoreServiceProvider::class,
];

3. 您应该使用以下php artisan命令发布config/dana.php配置文件。

php artisan vendor:publish --provider="Otnansirk\Dana\DanaCoreServiceProvider"

如何使用

所有配置都存储在config/dana.php中。自定义您所需的所有内容。

函数

1. 创建订单 | DANAPay::createOrder($orderData)

$orderData = [
    [
    "order" => [
        "orderTitle" => "Dummy product",
        "orderAmount" => [
            "currency" => "IDR",
            "value" => "100"
        ],
        "merchantTransId" => "201505080001",
        "merchantTransType" => "dummy transaction type",
        "orderMemo" => "Memo",
        "goods" => [
            [
                "merchantGoodsId" => "24525635625623",
                "description" => "dummy description",
                "category" => "dummy category",
                "price" => [
                    "currency" => "IDR",
                    "value" => "100"
                ],
                "unit" => "Kg",
                "quantity" => "3.2",
                "merchantShippingId" => "564314314574327545",
                "snapshotUrl" => "[http://snap.url.com]",
                "extendInfo" => [
                    "key" => "value",
                ]
            ]
        ]
    ],
    "merchantId" => "216820000000006553000",
    "subMerchantId" => "12345678",
    "productCode" => "51051000100000000001"
];

DANAPay::createOrder($orderData);

有关$orderData的所有可能的负载,请参阅官方DANA文档。
参考:https://dashboard.dana.id/api-docs/read/33

2. 通过acquirementId获取交易 | DANAPay::queryOrder($acquirementId);

$acquirementId = "20240125111212800110166050101920928";
DANAPay::queryOrder($acquirementId);

您可以使用此方法获取交易详情和交易状态
参考:https://dashboard.dana.id/api-docs/read/42

3. 获取oAuth URL | DANAPay::generateOauthUrl($terminalType, $redirectUrl);

$terminalType = "WEB";
$redirectUrl  = "https://your-app-url.com/oauth/callback";
DANAPay::generateOauthUrl($terminalType, $redirectUrl);

有关更多信息,请参阅官方DANA文档。
参考:https://dashboard.dana.id/api-docs/read/47

4. 获取Token和Refresh Token | DANAPay::getToken($authToken)

$authToken = "your-auth-token";
DANAPay::getToken($authToken);

您可以从oAuth回调过程中获取$authToken的值。
从此函数中,您将收到tokenrefresh_token
参考:https://dashboard.dana.id/api-docs/read/32

5. 获取用户配置文件 | DANAPay::profile($accessToken)

$accessToken = "your_user_profile_access_token";
DANAPay::profile($accessToken);

您可以从DANAPay::getToken函数中获取$accessToken的值
参考:https://dashboard.dana.id/api-docs/read/38

6. 解绑AccessToken | DANAPay::unBindAllAccount()

DANAPay::unBindAllAccount();

此函数用于吊销或解绑所有从商家注册的访问令牌。
参考:https://dashboard.dana.id/api-docs/read/46

7. 提供回调响应的函数

$status = true;
DANAPay::responseFinishNotifyCallback($status);

此函数将为DANA API生成有效的响应。
$status是布尔数据类型。

8. 计算MDR的函数

$payAmount = 100000;
$payMethod = 'BALANCE';
DANACalculation::calculateMDR($payAmount, $payMethod);

此函数将计算DANA的MDR费用。您将从DANA的回调中获取$payMethod和$payAmount的值。

贡献

这个项目离完美还很远。许多DANA API尚未实现。如果你们中的任何一个人能为这个项目做出贡献,我将非常高兴。