PonponPay
初级12 分钟阅读

PHP SDK

使用官方 PonponPay PHP SDK,在 Laravel、WordPress、WHMCS 或自定义 PHP 项目中快速完成创建订单、查询订单和 Webhook 验签。

如果你希望直接调用 HTTP 接口而不是使用 SDK 封装,可以先看 API Key 指南

安装

composer require ponponpay/php-sdk

初始化客户端

use PonponPay\PonponPay;

$ponponpay = new PonponPay('your-api-key', [
    'api_url' => 'https://api.ponponpay.com',
    'timeout' => 30,
]);

创建订单

$order = $ponponpay->createOrder([
    'mch_order_id' => 'ORDER_' . time(),
    'currency'     => 'USDT',
    'network'      => 'tron',
    'amount'       => 10.00,
    'notify_url'   => 'https://your-site.com/webhook.php',
    'redirect_url' => 'https://your-site.com/success',
]);

echo $order->tradeId;
echo $order->paymentUrl;
echo $order->address;

查询订单

$order = $ponponpay->getOrderByTradeId('T20240101120000123456');

echo $order->status;
echo $order->txHash;

验证 Webhook 回调

SDK 内置了 HMAC-SHA256 签名验证、时间窗口校验和基于 nonce 的防重放保护。完整安全说明也建议同步查看 Webhook 安全文档

use PonponPay\PonponPay;
use PonponPay\WebhookHandler;
use PonponPay\Exception\SignatureException;

$ponponpay = new PonponPay('your-api-key');

try {
    $data = $ponponpay->webhook()->handle();
    $status = WebhookHandler::resolveStatus($data);

    if ($status === 'paid') {
        // 在这里更新你的业务订单状态
    }

    http_response_code(200);
    echo 'OK';
} catch (SignatureException $e) {
    http_response_code($e->getHttpStatus());
    echo $e->getMessage();
}

SDK 方法一览

方法返回值说明
getPaymentMethods()PaymentMethod[]获取当前商户可用的币种和链路组合。
createOrder(array $params)Order创建支付订单,返回支付链接、收款地址和交易号。
getOrderByTradeId(string $tradeId)Order通过 PonponPay 交易号查询订单。
getOrderByMchOrderId(string $mchOrderId)Order通过商户自己的订单号查询订单。
getMerchantDetail()Merchant获取当前 API Key 对应的商户信息。
webhook()WebhookHandler创建一个复用同一 API Key 的回调验签器。

调试与本地测试

$ponponpay = new PonponPay('your-api-key', [
    'debug' => true,
    'debug_log_file' => '/tmp/ponponpay-debug.log',
]);

SDK 仓库中也包含可直接运行的示例,例如 examples/create_order.phpexamples/webhook.php,以及一个浏览器演示页面 demo-web/

仓库地址

GitHub:useponponpay/php-sdk