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