andrey-vasarovsky/crypto-gateway-engine

该包的最新版本(dev-master)没有提供许可证信息。

支持BTC、LTC、ETH、TRX、XRP的加密支付网关

dev-master 2023-01-07 14:42 UTC

This package is auto-updated.

Last update: 2024-09-07 18:09:57 UTC


README

API服务

此组件使用以下API服务

Infura 您必须创建账户。然后创建一个名为“Ethereum”的新项目。之后,您将收到项目ID值。然后将此密钥粘贴到环境变量“INFURA_PROJECT_ID”。此服务用于Ethereum区块链。

Nownodes 您只需填写电子邮件输入并点击“获取免费API密钥”按钮。然后您将在电子邮件中收到API密钥。然后将此密钥粘贴到环境变量“NOWNODES_API_KEY”。此服务用于Bitcoin/Litecoin区块链。

Trongrid 此服务用于Tron区块链。它无需任何API密钥即可使用。

Xrp ledger 此服务用于Ripple区块链。它无需任何API密钥即可使用。

主网/测试网区块链

如果您想在测试网中使用组件,您必须设置以下环境参数

BTC_TESTNET=true
LTC_TESTNET=true
ETH_TESTNET=true
XRP_TESTNET=true
TRX_TESTNET=true

助记短语

目前所有项目只使用一个助记短语。从该短语将生成新的钱包地址。此外,从索引0的路径处理所有提款。要设置此短语,您必须填写环境参数MNEMONIC_PHRASE

测试钱包

对于测试,您可以生成自己的钱包或使用以下之一

TRX

测试浏览器

注意:当您发送TRC20代币时,您的TRX余额必须大于0,因为费用仅在TRX中支付

ETH

测试浏览器

注意:当您发送ERC20代币时,您的ETH余额必须大于0,因为费用仅在ETH中支付

##XRP 测试浏览器

注意:对新的地址进行的第一次交易必须大于10 XRP,否则交易将失败,并且您甚至无法在浏览器中找到地址,更多详情

BTC

测试浏览器

LTC

测试浏览器

如何使用此组件?

当您想要生成钱包时,您需要种子短语(助记短语)。这是主要密钥。您可以使用自己的种子短语或生成新的一个。要生成新的种子短语,您可以按照以下步骤操作

$service = app(WalletGenerator::class);
$mnemonic = $service->generateSeed();

生成BTC加密钱包

$service = app(WalletGenerator::class);
$mnemonic = $service->generateSeed();
        
$path = 0;
$wallet = $service->generate(new CryptoCurrencyCoin(CryptoCurrencyCoin::BTC), $mnemonic, $path);

从单个助记短语,您可以生成(2^31 - 1)个地址,只需您需要放置所需的路径。更多详细信息,您可以参阅BIP-32规范

要从我们的钱包向n2k8dJGvQa9Z4G5gPDogKPsopbvoGoJmaR发送0.0001 BTC,您可以使用以下代码,当然,您的钱包总额必须大于0.0001 + 网络费用

$walletService = app(WalletGenerator::class);
$mnemonic = $walletService->generateSeed();

$coin = new CryptoCurrencyCoin(CryptoCurrencyCoin::BTC);
$senderWalletDto = $walletService->generate($coin, $mnemonic, 0);

$currency = new Currency(CryptoCurrency::BTC(), new CurrencyNetwork(TokenType::DEFAULT(), 8));
$senderWallet = new Wallet($senderWalletDto->address, $senderWalletDto->privateKey, $currency, $senderWalletDto->pubKey);

$crypto = AbstractCryptoFactory::instanceByCurrency($currency);
$destinationAddressDto = new DestinationAddressDto([
    'address' => 'n2k8dJGvQa9Z4G5gPDogKPsopbvoGoJmaR',
    'amount' => 0.0001
]);
$transaction = $crypto->createTransaction($senderWallet)->create($destinationAddressDto);
$result = $crypto->broadcastTransaction($transaction);