iamxid/iamx-payment-gateway

IAMX支付网关是一个Laravel包,允许用户使用Cardano原生代币支付费用。

dev-main 2024-02-02 13:25 UTC

This package is auto-updated.

Last update: 2024-10-01 00:09:22 UTC


README

IAMX支付网关是一个Laravel包,允许用户使用ADA或Cardano原生代币支付费用。

安装

使用composer安装iamxid/iamx-payment-gateway包的当前版本

    composer require iamxid/iamx-payment-gateway:dev-main

配置

发布配置文件

    php artisan vendor:publish --provider="IAMXID\IamxPaymentGateway\IamxPaymentGatewayServiceProvider" --tag="config"

发布迁移文件

    php artisan vendor:publish --provider="IAMXID\IamxPaymentGateway\IamxPaymentGatewayServiceProvider" --tag="migrations"

运行迁移

    php artisan migrate

将Blockfrost项目ID添加到文件/config/blockfrost.php中

return [
'project_id' => 'mainnet...',
];

在env文件中添加变量PAYMENT_GATEWAY_LOGGER以激活包的日志记录。

PAYMENT_GATEWAY_LOGGER=true

用法

在控制器中使用UsePaymentController特质以将新的支付插入数据库,并检查支付是否挂起或已确认。

<?php

namespace App\Http\Controllers;

use IAMXID\IamxPaymentGateway\Traits\UsePaymentGateway;

class TestController extends Controller
{

    use UsePaymentGateway;
    public function test() {

        // Insert a new payment into the database

        $uuid = '1122ABC';
        $wallet_receiver = 'addr1...';
        $wallet_sender = 'stake1...';
        $after_blockheight = 9881942;
        $token_amount = 10;
        $token_policy_id = '12d5f4fefe222d52a4fdcee56f4b272911d7c2202b068a08ebf53270';
        $token_name_hex = '49414d58';

        // Payment in native token (Example 10 IAMX token)
        $returnValue1 = $this->setPayment(
            $uuid,
            $wallet_receiver,
            $wallet_sender,
            $after_blockheight,
            $token_amount,
            $token_policy_id,
            $token_name_hex
        );

        // Payment in ADA (Example 10 ADA)
        $returnValue2 = $this->setPayment(
            $uuid,
            $wallet_receiver,
            $wallet_sender,
            $after_blockheight,
            $token_amount
        );

        // Check if the payment is still pending
        $returnValue3 = $this->isPendingPayment($uuid);

        // Check if the payment is confirmed
        $returnValue4 = $this->checkForPayment($uuid);


    }
}

使用GET路由[ROOT_URL]/iamx_payment_gateway/checkPayment检查支付是否由区块链确认。

curl --location '[ROOT_URL]/iamx_payment_gateway/checkPayment?uuid=[UUID of the transaction]'

设置一个每分钟执行iamx_payment_gateway:checkTokenPayment命令的cronjob。此命令将检查blockfrost以确认挂起的支付。

* * * * * cd /[PATH TO THE PROJECT]; php artisan iamx_payment_gateway:checkTokenPayment >> /dev/null 2>&1

设置一个每天执行iamx_payment_gateway:clearOldOpenPayments命令的cronjob。此命令将从数据库中删除所有超过7天的挂起支付。

0 1 * * * cd /[PATH TO THE PROJECT]; php artisan iamx_payment_gateway:clearOldOpenPayments >> /dev/null 2>&1

错误和建议

版权和许可证

MIT