adityadarma/laravel-duitku

laravel的duitku支付网关库

1.0.5 2024-06-24 14:45 UTC

This package is auto-updated.

Last update: 2024-09-24 15:25:16 UTC


README

Laravel Duitku是一个提供Duitku支付网关的包。

Laravel安装说明

  1. 在终端中,从您的项目根目录运行

    composer require adityadarma/laravel-duitku
  2. 安装配置

    php artisan duitku:install

配置

Laravel Duitku可以直接在/config/duitku.php中进行配置。将变量添加到您的.env文件中。

环境文件

以下是可用的.env文件变量

DUITKU_ENV=development
DUITKU_MERCHANT_CODE=xxxxxxx
DUITKU_API_KEY=xxxxxx
DUITKU_APDUITKU_CALLBACK_URLI_KEY=https://example.com/callback
DUITKU_RETURN_URL=https://example.com/return

API使用

获取支付方式

示例

use AdityaDarma\LaravelDuitku\Facades\DuitkuAPI;

$listPayments = DuitkuAPI::getPaymentMethod(1000000);
创建支付

示例

use AdityaDarma\LaravelDuitku\Facades\DuitkuAPI;

DuitkuAPI::createTransaction([
    'merchantOrderId'   => 10000,
    'customerVaName'    => 'Aditya Darma',
    'email'             => 'email@example.com',
    'paymentAmount'     => 100000,
    'paymentMethod'     => 'VC',
    'productDetails'    => 'Buy Company',
    'expiryPeriod'      => 10,  // optional (minute)
    'phoneNumber'       => '08123456789', // optional
    'itemDetails'       => [ // optional
        [
            'name' => 'Test Item 1',
            'price' => 10000,
            'quantity' => 1
        ],[
            'name' => 'Test Item 2',
            'price' => 10000,
            'quantity' => 1
        ]
    ],
    'customerDetail'    => [ // optional
        'firstName'         => 'Aditya',
        'lastName'          => 'Darma',
        'email'             => 'email@example.com',
        'phoneNumber'       => $phoneNumber,
        'billingAddress'    => $address,
        'shippingAddress'   => $address
    ],
    'additionalParam'   => '', // optional
    'merchantUserInfo'  => '', // optional
]);

列出支付方式

检查交易

示例

use AdityaDarma\LaravelDuitku\Facades\DuitkuAPI;

DuitkuAPI::checkTransactionStatus(1000000);
处理回调交易

示例

use AdityaDarma\LaravelDuitku\Facades\DuitkuAPI;

$payment = DuitkuAPI::getNotificationTransaction();

POP使用

创建支付

示例

use AdityaDarma\LaravelDuitku\Facades\DuitkuPOP;

DuitkuPOP::createTransaction([
    'merchantOrderId'   => 10000,
    'customerVaName'    => 'Aditya Darma',
    'email'             => 'email@example.com',
    'paymentAmount'     => 100000,
    'productDetails'    => 'Buy Company',
    'expiryPeriod'      => 10,  // optional (minute)
    'phoneNumber'       => '08123456789', // optional
    'itemDetails'       => [ // optional
        [
            'name' => 'Test Item 1',
            'price' => 10000,
            'quantity' => 1
        ],[
            'name' => 'Test Item 2',
            'price' => 10000,
            'quantity' => 1
        ]
    ],
    'customerDetail'    => [ // optional
        'firstName'         => 'Aditya',
        'lastName'          => 'Darma',
        'email'             => 'email@example.com',
        'phoneNumber'       => $phoneNumber,
        'billingAddress'    => $address,
        'shippingAddress'   => $address
    ],
    'additionalParam'   => '', // optional
    'merchantUserInfo'  => '', // optional
]);

列出支付方式

duitku JS弹出窗口模态

  • 生产环境
<script src="https://app-prod.duitku.com/lib/js/duitku.js"></script>
  • 沙盒
<script src="https://app-sandbox.duitku.com/lib/js/duitku.js"></script>
  • 实现
checkout.process("DXXXXS875LXXXX32IJZ7", {
    defaultLanguage: "id", //optional
    successEvent: function(result){
        console.log(result);
        alert('Payment Success');
    },
    pendingEvent: function(result){
        console.log(result);
        alert('Payment Pending');
    },
    errorEvent: function(result){
        console.log(result);
        alert('Payment Error');
    },
    closeEvent: function(result){
        console.log(result);
        alert('customer closed the popup without finishing the payment');
    }
});
处理回调交易

示例

use AdityaDarma\LaravelDuitku\Facades\DuitkuPOP;

$payment = DuitkuPOP::getNotificationTransaction();

许可协议

本软件包遵循MIT许可协议。祝您使用愉快!