概述

**Solana Pay 是一套标准协议和参考实现,使开发者能够将去中心化支付集成到他们的应用和服务中。**它为整个 Solana 生态系统提供了统一的支付方式,确保钱包、应用和服务之间的兼容性。

协议概述

Solana Pay 定义了两种主要的支付请求类型:

转账请求(非交互式)

转账请求使用 URL 参数描述简单的 SOL 或 SPL 代币转账。钱包可以直接组合并签署交易,无需与服务器进行额外通信。

solana:recipient?amount=1.5&spl-token=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

使用场景:

  • 简单支付和捐赠
  • 销售点二维码支付
  • 电子邮件或消息中的支付链接
  • 移动应用深度链接

交易请求(交互式)

交易请求通过让钱包与服务器通信来组合任意 Solana 交易,从而实现复杂的交互。这解锁了超越简单转账的高级用例。

solana:https://merchant.com/api/payment

使用场景:

  • 销售点 NFT 铸造
  • 动态定价和折扣
  • 多步骤 DeFi 交易
  • 忠诚度计划集成
  • 自定义业务逻辑

主要优势

对开发者而言

  • 标准协议:一次实现即可在所有 Solana 钱包中使用
  • 框架无关:可与任何 Web 框架或移动平台配合使用
  • 类型安全:JavaScript SDK 完全支持 TypeScript
  • 灵活性:从简单转账到复杂的多指令交易

对用户而言

  • 快速:交易在一秒内确认
  • 低成本:每笔交易平均费用 0.0005 美元
  • 安全:无中介或第三方处理器
  • 通用:兼容任何 Solana 钱包

面向商家

  • 零手续费:直接支付,无需支付处理费用
  • 实时到账:即时结算和确认
  • 全球通用:接受来自世界任何地方的付款
  • 可组合性:与 DeFi 协议和 NFT 市场集成

技术架构

URL 协议

Solana Pay 使用自定义 URL 协议 solana:,可在网页浏览器和移动操作系统中使用:

  • 网页端:URL 可作为链接使用或编码为二维码
  • 移动端:与钱包应用深度链接集成
  • 桌面端:通过协议处理程序实现无缝钱包启动

JavaScript SDK

@solana/pay SDK(基于 @solana/kit 构建)提供:

  • 客户端工厂函数createMerchantClientcreateWalletClientcreateSolanaPayClient 用于构建可组合的支付流程
  • URL 编码/解析encodeURLparseURL 用于处理 Solana Pay URL
  • 转账创建createTransfer 用于创建 SOL 和 SPL 代币支付指令
  • 支付验证findReferencevalidateTransferwatchReference 用于检测和验证支付
  • 二维码生成:内置 createQR 用于生成可扫描的支付二维码
  • Kit 插件solanaPayMerchant()solanaPayWallet() 用于与其他 @solana/kit 插件组合使用

钱包集成

支持的钱包需要实现:

  • URL 协议处理和解析
  • 交易组装和验证
  • 用户确认流程
  • 交易广播和监控

支付流程示例

网页应用到移动钱包

  1. 网页应用生成包含 Solana Pay URL 的二维码
  2. 用户使用钱包应用扫描二维码
  3. 钱包解析 URL 并显示支付详情
  4. 用户在钱包中确认支付
  5. 钱包签名并广播交易
  6. 网页应用检测到支付确认

网页应用到浏览器钱包

  1. 网页应用显示"使用 Solana 支付"按钮
  2. 用户点击按钮启动钱包
  3. 钱包扩展程序显示支付确认
  4. 用户批准交易
  5. 交易被签名并发送
  6. 网页应用收到支付确认

移动应用到移动钱包

  1. 移动应用创建支付深度链接
  2. 深度链接启动钱包应用
  3. 钱包显示支付确认
  4. 用户批准或拒绝支付
  5. 钱包返回到原始应用
  6. 应用接收支付结果

安全注意事项

商家须知

  • 验证交易:始终在链上验证交易详情
  • 使用引用:包含唯一的引用密钥以识别支付
  • 服务器端验证:在服务器端计算金额并验证支付
  • 速率限制:在支付端点上实施适当的速率限制

钱包开发者须知

  • URL 验证:验证并清理所有 URL 组件
  • 用户确认:始终向用户显示清晰的支付详情
  • 交易验证:在签名前验证交易内容
  • 仅限 HTTPS:仅允许使用 HTTPS URL 进行交易请求

集成模式

电子商务结账

  1. 客户将商品添加到购物车
  2. 商家生成包含订单详情的支付请求
  3. 客户扫描二维码或点击支付按钮
  4. 钱包显示明细收据和总额
  5. 客户确认支付
  6. 商家验证交易并完成订单

销售点

  1. 收银员输入销售金额
  2. POS 系统显示二维码
  3. 客户使用移动钱包扫描
  4. 支付即时处理
  5. 自动打印收据

订阅服务

  1. 用户订阅服务
  2. 服务创建定期支付计划
  3. 自动化系统生成支付请求
  4. 用户通过钱包批准支付
  5. 服务跟踪支付状态

最佳实践

URL 生成

  • 对所有交易请求端点使用 HTTPS
  • 包含描述性标签和消息
  • 生成唯一引用以跟踪支付
  • 在创建 URL 之前验证所有参数

交易处理

  • 始终在服务器端验证交易
  • 使用适当的确认次数以确保安全
  • 实施适当的错误处理和重试机制
  • 记录支付事件以便对账

用户体验

  • 提供清晰的支付确认
  • 显示交易状态更新
  • 优雅地处理钱包连接
  • 支持多种钱包选项

下一步

准备好集成 Solana Pay 了吗?从这些指南开始:

资源

Is this page helpful?

管理者

©️ 2026 Solana 基金会版权所有
取得联系