gluwa/gluwa-php

PHP 的 Gluwa API v1 库

v1.1.0 2021-05-20 06:07 UTC

This package is auto-updated.

Last update: 2024-09-08 19:23:14 UTC


README

尊敬的用户,沙箱环境已被弃用,请更新您的代码以避免出现任何进一步的错误

如果您使用 PHP 开发服务,我们提供的功能可以通过 SDK 使用。Gluwa SDK for PHP 是一个具有强大功能的库,它使 PHP 开发者能够轻松地向 Gluwa API 发送请求。

更新

v1.1.0 - 添加对 sNGNG 的支持 (2021年5月20日) v1.0.9 - 添加对 sUSDCG 的支持 (2021年6月1日)

入门指南

下载下面的 PHP 包并将其上传到您的服务器。SDK 需要 PHP 5.6 或更高版本。

$ composer require gluwa/gluwa-php

创建并初始化一个 Gluwa 对象。然后,输入从 Gluwa 控制台 生成的 APIKeyAPISecretWebookSecret,以及一个以太坊钱包来管理您的资金。如果您想在内沙箱环境中测试,可以使用沙箱控制台凭据和 Goerli 钱包。

<?php
// Specify your vendor path.
require_once('vendor/autoload.php');

// If you want to run test on the sandbox mode, change below to values ​​obtained from Gluwa Dashboard's sandbox mode.
$Configuration_DEV = false; // "true" if you want to use the sandbox mode

$Configuration_APIKey = '{Your API Key}';
$Configuration_APISecret = '{Your API Secret}';
$Configuration_WebhookSecret = '{Your Webhook Secret}';
$Configuration_MasterEthereumPrivateKey = '{Your Ethereum Private Key}';
$Configuration_MasterEthereumAddress = '{Your Ethereum Address}';

$Gluwa = new Gluwa\Gluwa([
    '__DEV__' => $Configuration_DEV,
    'APIKey' => $Configuration_APIKey,
    'APISecret' => $Configuration_APISecret,
    'WebhookSecret' => $Configuration_WebhookSecret,
    'MasterEthereumPrivateKey' => $Configuration_MasterEthereumPrivateKey,
    'MasterEthereumAddress' => $Configuration_MasterEthereumAddress,
]);

如果您使用的是 PHP 5.6,您需要启用 php-bcmath,因为从 PHP 7 之前默认没有启用它。如果尚未安装,请安装它。请访问 此处 获取更多信息。

如果您收到以下消息,您应该在您的服务器上安装 gmp 扩展。请访问 此网站 寻找解决方案。

函数 gmp_init 不可用。请确保 php_gmp 扩展可用

现在您可以开始使用 Gluwa API 了。

方法示例

创建新交易

$PostTransaction_Currency = '{USDG or sUSDCG or KRWG or sNGNG}';
$PostTransaction_Amount = '{Sending Amount}';
$PostTransaction_Target = '{Receiver\'s Address}';
$PostTransaction_MerchantOrderID = '{Merchant\'s Order ID. Optional}';
$PostTransaction_Note = '{Custom Note. Optional}';
$PostTransaction_Expiry = {Expiry of the Transfer Request. Optional};

$Response = $Gluwa->postTransaction([
    'Currency' => $PostTransaction_Currency,
    'Amount' => $PostTransaction_Amount,
    'Target' => $PostTransaction_Target,
    'MerchantOrderID' => $PostTransaction_MerchantOrderID, // optional
    'Note' => $PostTransaction_Note, // optional
    'Expiry' => $PostTransaction_Expiry, // optional
]);

创建支付二维码

$Response = $Gluwa->getPaymentQRCode([
    'Currency' => 'USDG', // USDG or sUSDCG or KRWG or sNGNG
    'Amount' => '1',
    'Note' => '', // optional
    'MerchantOrderID' => '', // optional
    'Expiry' => 1800, // optional
]);

getPaymentQRCode API 返回一个 Base64 字符串作为二维码 png 图像。您可以在您的网站上显示图像,如下所示

<img src="data:image/png;base64,{BASE64_STRING_YOU_RECEIVED}" alt="Gluwa Payment QR Code">

列出地址的交易历史

$Response = $Gluwa->getListTransactionHistory([
    'Currency' => 'USDG', // USDG or sUSDCG or KRWG or sNGNG
    'Limit' => '100', // optional
    'Status' => 'Confirmed', // optional
    'Offset' => '0', // optional
]);

通过哈希检索交易详情

$Response = $Gluwa->getListTransactionDetail([
    'Currency' => 'USDG', // USDG or sUSDCG or KRWG or sNGNG
    'TxnHash' => '',
]);

检索地址的余额

$Response = $Gluwa->getAddresses([
    'Currency' => 'USDG', // USDG or sUSDCG or KRWG or sNGNG
]);

Webhook 验证

当用户通过二维码完成转账时,Gluwa API 会向您的 webhook 端点发送 webhook。验证 Gluwa 服务器实际发送的值是否正确。

webhook 的负载和签名可以按以下方式获得

$Headers = getallheaders();
$Signature = $Headers['X-REQUEST-SIGNATURE'];
$Payload = file_get_contents("php://input");

按照以下方式验证请求的签名和负载

$Response2 = $Gluwa->validateWebhook([
    'Payload' => $Payload,
    'Signature' => $Signature,
]);