otnansirk / laravel-dana
这是一个用于DANA支付API的Laravel包装器
Requires
- laravel/framework: ^9.19 || ^10.0 || ^11.0
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
的值。
从此函数中,您将收到token
和refresh_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尚未实现。如果你们中的任何一个人能为这个项目做出贡献,我将非常高兴。