cybertines/crypto-laravel

此软件包最新版本(v1.1)没有提供许可证信息。

BTC、TRX 的加密支付网关

v1.1 2023-01-08 10:38 UTC

This package is auto-updated.

Last update: 2024-09-08 14:18:17 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) 个地址,只需输入需要的 $path 即可。更多详细信息,您可以在 BIP-32 规范中阅读

要从我们的钱包发送 0.0001 BTCn2k8dJGvQa9Z4G5gPDogKPsopbvoGoJmaR,您可以使用以下代码,当然,在您的钱包中必须的总数大于 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);