尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

基于第三方heleket api接入usdt支付

基于第三方heleket api接入usdt支付
📅 发布时间:2026/6/20 10:23:17

app上要接入usdt区块链支付 使用第三方通道heleket实现 heleket是国外网站,需要用魔法FQ. 官方文档地址 https://doc.heleket.com/methods/payments/qr-code-pay-form

测试页面

<!doctype html>
<html>
<head><meta charset="utf-8" /><title>USDT 支付示例(Heleket)</title><style>body { font-family: Arial, sans-serif; padding: 20px;}label { display:block; margin-top:10px; }input, select { padding:8px; width:300px; }button { margin-top:12px; padding:10px 16px; }#payFrame { width:100%; height:720px; border:1px solid #ccc; margin-top:20px; display:none; }</style>
</head>
<body>
<h2>创建 USDT 发票(Heleket)</h2><label>金额(例如 20)<input id="amount" value="20"></label>
<label>货币<select id="currency"><option value="USDT">USDT</option><option value="BTC">BTC</option>
</select></label>
<label>网络<select id="network"><option value="">(无)</option><option value="tron">tron</option><option value="bsc">bsc</option><option value="eth">eth</option>
</select></label><button id="payBtn">创建发票并跳转支付页面</button>
<button id="embedBtn">创建发票并在页面内嵌入支付页</button><iframe id="payFrame"></iframe><script>async function createInvoice(embed) {const amount = document.getElementById('amount').value;const currency = document.getElementById('currency').value;const network = document.getElementById('network').value;const payload = {amount: amount,currency: currency,network: network,// 若你有自己的 orderId 可传入; 否则后端会生成// orderId: 'order-12345'
        };const res = await fetch('/heleket/pay', {method: 'POST',headers: { 'Content-Type': 'application/json' },body: JSON.stringify(payload)});if (!res.ok) {alert('创建发票失败:' + res.statusText);return;}const json = await res.json();// Heleket 返回格式示例: { state:0, result: { url: "https://pay.heleket.com/pay/....", ... } }
        const result = json.result || json;const url = (result && result.url) ? result.url : (json.url || null);if (!url) {alert('未收到支付 URL,详见控制台');console.log(json);return;}if (embed) {document.getElementById('payFrame').style.display = 'block';document.getElementById('payFrame').src = url;} else {// 跳转到支付页
            window.location.href = url;}}document.getElementById('payBtn').addEventListener('click', () => createInvoice(false));document.getElementById('embedBtn').addEventListener('click', () => createInvoice(true));
</script>
</body>
</html>

sql脚本

CREATE TABLE `payment_order` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID,自增',`order_id` varchar(64) NOT NULL COMMENT '商户自定义订单号(业务系统唯一)',`invoice_uuid` varchar(64) DEFAULT NULL COMMENT 'Heleket返回的发票唯一UUID',`amount` decimal(20,8) DEFAULT NULL COMMENT '订单金额(下单金额)',`currency` varchar(16) DEFAULT NULL COMMENT '币种,例如 USDT、BTC 等',`network` varchar(16) DEFAULT NULL COMMENT '区块链网络,例如 tron、bsc、eth 等',`address` varchar(128) DEFAULT NULL COMMENT '收款地址(Heleket提供的收款钱包地址)',`payer_amount` decimal(20,8) DEFAULT NULL COMMENT '用户实际支付金额(回调时返回)',`txid` varchar(128) DEFAULT NULL COMMENT '交易哈希(区块链交易ID)',`status` varchar(32) DEFAULT NULL COMMENT '订单状态,例如 pending、paid、confirmed、failed',`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`),UNIQUE KEY `order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='USDT等加密货币支付订单表(Heleket支付对接)';

🧩 一、接入目标

Heleket 是一个支持 USDT、TRC20、BEP20、ETH 等多链支付的加密支付网关。
我们接入它的核心目的是:
✅ 创建支付订单(invoice)
✅ 生成二维码支付页
✅ 接收支付结果回调


⚙️ 二、核心接口说明

功能API 路径Java 方法说明
创建支付发票 /v1/payment createInvoice() 商户生成订单并获得支付链接
生成静态钱包二维码 /v1/wallet/qr createQrForm() 用于展示收款钱包二维码
为发票生成二维码 /v1/payment/qr createTicketQr() 生成指定发票的二维码
(可选)查询订单 /v1/payment/info 自行封装 查询发票状态、交易记录

🏗️ 三、项目结构推荐

 
com.zoneyet.buinsess.channel.usdtpay │ ├── config │ └── HeleketConfig.java # Heleket 商户配置类(merchantId、apiKey、apiBase) │ ├── request # 所有请求实体类 │ ├── HeleketInvoiceRequest.java │ ├── HeleketQrPayRequest.java │ └── HeleketQrTicketRequest.java │ ├── response # 所有响应实体类 │ ├── HeleketInvoiceResponse.java │ ├── HeleketQrPayResponse.java │ └── HeleketBaseResponse.java(可选) │ ├── service │ └── HeleketService.java # 所有 Heleket API 封装(统一签名 + 调用) │ └── controller└── PaymentController.java # 暴露给前端的支付接口

🔐 四、签名规则(Heleket 官方规范)

每个请求都要带上签名头部:

Header说明
merchant 商户编号(从 Heleket 后台获取)
sign 签名字符串(Base64(JSON体) + apiKey 后取 MD5)

签名步骤:

 
String jsonBody = objectMapper.writeValueAsString(request); String base64Body = Base64.encodeBase64String(jsonBody.getBytes(StandardCharsets.UTF_8)); String sign = DigestUtils.md5Hex(base64Body + heleketConfig.getApiKey());

请求头:

 
headers.set("merchant", heleketConfig.getMerchantId()); headers.set("sign", sign);

🚀 五、接口调用示例

1️⃣ 创建支付订单

请求(HeleketInvoiceRequest):

 
{"amount": "200.00","currency": "USDT","order_id": "ORD123456","network": "tron","url_success": "https://your-domain.com/pay/success","url_callback": "https://your-domain.com/pay/callback" }

响应(HeleketInvoiceResponse):

 
{"state": 0,"result": {"uuid": "1ec87133-b22d-4643-988f-cac29a6ac85d","order_id": "ORD123456","amount": "200.00","currency": "USDT","network": "tron","address": "TXXX...","url": "https://pay.heleket.com/pay/1ec87133-b22d-4643-988f-cac29a6ac85d","status": "check","address_qr_code": "data:image/png;base64,..."} }

2️⃣ 生成二维码支付表单

请求(HeleketQrPayRequest):

 
{"network": "tron","currency": "USDT","address": "TXXX..." }

响应(HeleketQrPayResponse):

 
{"state": 0,"result": {"qr_code": "data:image/png;base64,...","url": "https://pay.heleket.com/qr/XXXX"} }

3️⃣ 回调通知(Heleket → 商户)

Heleket 在交易确认后会回调你配置的 url_callback。
回调内容示例:

 
{"uuid": "1ec87133-b22d-4643-988f-cac29a6ac85d","order_id": "ORD123456","status": "paid","amount": "200.00","currency": "USDT","network": "tron","txid": "0x123...","from": "Txxx...","address": "Txxx..." }

建议回调接口返回:

 
{ "state": 0 }

🧰 六、前后端交互流程(时序)

 
[用户下单] ↓ 前端调用 -> /heleket/pay↓ PaymentController.create()↓ HeleketService.createInvoice()↓ Heleket API 返回支付 URL↓ 后端返回 result.url 给前端↓ 前端跳转到 Heleket 支付页或展示二维码↓ 用户支付完成↓ Heleket 异步通知 url_callback↓ 后端更新订单状态为 “paid”

🔧 七、调试建议

环节建议
签名错误 检查 Base64 编码和 MD5 拼接是否一致
API 错误 打印完整日志(request + response)
超时 Heleket 建议 10s 超时,可用 RestTemplateBuilder 设置
JSON 解析 确保字段类型(amount 建议用 String)

📦 八、总结一句话

Heleket 接入的本质:

👉 使用统一签名方式(Base64 + MD5)
👉 调用标准 REST API(POST JSON)
👉 返回标准 JSON,带 state 和 result
👉 回调更新支付状态


可以自动验证签名、防止伪造,并更新数据库订单状态。

 

相关新闻

  • Legacy模式虚拟机,grub文件丢失如何处理
  • 2025年省电中央空调品牌权威推荐榜单:双出风中央空调/一拖四中央空调/智能中央空调品牌精选
  • Python自动化之Docx文档处理(一)

最新新闻

  • Smoke评测:Qwen3 Max约束+23分逆袭,GPT-o3材料约束暴跌15.2分
  • 珠海修车保养门店怎么选?金鼎区域汽修门店对比与养车避坑干货 - 国麟测评
  • 给通用策略添加黑名单个股池,永久剔除ST,退市风险警示股票。
  • 重磅官宣!2026年亨得利官方售后服务门店地址全面更新|官方服务热线全新上线 - 亨得利中国服务中心
  • 如何三步搭建个人AI数字人工作室:开源Duix-Avatar终极指南
  • 从Demo狂欢到生产落地,AI Agent系统化测评完整实践指南

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号