**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 构建)提供:
- 客户端工厂函数:
createMerchantClient、createWalletClient、createSolanaPayClient用于构建可组合的支付流程 - URL 编码/解析:
encodeURL、parseURL用于处理 Solana Pay URL - 转账创建:
createTransfer用于创建 SOL 和 SPL 代币支付指令 - 支付验证:
findReference、validateTransfer、watchReference用于检测和验证支付 - 二维码生成:内置
createQR用于生成可扫描的支付二维码 - Kit 插件:
solanaPayMerchant()、solanaPayWallet()用于与其他@solana/kit插件组合使用
钱包集成
支持的钱包需要实现:
- URL 协议处理和解析
- 交易组装和验证
- 用户确认流程
- 交易广播和监控
支付流程示例
网页应用到移动钱包
- 网页应用生成包含 Solana Pay URL 的二维码
- 用户使用钱包应用扫描二维码
- 钱包解析 URL 并显示支付详情
- 用户在钱包中确认支付
- 钱包签名并广播交易
- 网页应用检测到支付确认
网页应用到浏览器钱包
- 网页应用显示"使用 Solana 支付"按钮
- 用户点击按钮启动钱包
- 钱包扩展程序显示支付确认
- 用户批准交易
- 交易被签名并发送
- 网页应用收到支付确认
移动应用到移动钱包
- 移动应用创建支付深度链接
- 深度链接启动钱包应用
- 钱包显示支付确认
- 用户批准或拒绝支付
- 钱包返回到原始应用
- 应用接收支付结果
安全注意事项
商家须知
- 验证交易:始终在链上验证交易详情
- 使用引用:包含唯一的引用密钥以识别支付
- 服务器端验证:在服务器端计算金额并验证支付
- 速率限制:在支付端点上实施适当的速率限制
钱包开发者须知
- URL 验证:验证并清理所有 URL 组件
- 用户确认:始终向用户显示清晰的支付详情
- 交易验证:在签名前验证交易内容
- 仅限 HTTPS:仅允许使用 HTTPS URL 进行交易请求
集成模式
电子商务结账
- 客户将商品添加到购物车
- 商家生成包含订单详情的支付请求
- 客户扫描二维码或点击支付按钮
- 钱包显示明细收据和总额
- 客户确认支付
- 商家验证交易并完成订单
销售点
- 收银员输入销售金额
- POS 系统显示二维码
- 客户使用移动钱包扫描
- 支付即时处理
- 自动打印收据
订阅服务
- 用户订阅服务
- 服务创建定期支付计划
- 自动化系统生成支付请求
- 用户通过钱包批准支付
- 服务跟踪支付状态
最佳实践
URL 生成
- 对所有交易请求端点使用 HTTPS
- 包含描述性标签和消息
- 生成唯一引用以跟踪支付
- 在创建 URL 之前验证所有参数
交易处理
- 始终在服务器端验证交易
- 使用适当的确认次数以确保安全
- 实施适当的错误处理和重试机制
- 记录支付事件以便对账
用户体验
- 提供清晰的支付确认
- 显示交易状态更新
- 优雅地处理钱包连接
- 支持多种钱包选项
下一步
准备好集成 Solana Pay 了吗?从这些指南开始:
-
安装指南 - 设置 SDK 和工具
-
转账请求 - 创建简单的支付 URL
-
交易请求 - 构建交互式流程
-
集成示例 - 查看实际实现案例
-
Installation Guide - Set up the SDK and tools
-
Transfer Requests - Create simple payment URLs
-
Transaction Requests - Build interactive flows
-
Integration Examples - See real-world implementations
资源
Is this page helpful?