解释bitcoin URI的地址、amount单位、label与message参数,说明req-必需参数、不支持字段和二维码付款前的核对方法。
BIP-21二维码只是结构化付款请求,最终支付对象仍以钱包解析出的地址和整数聪为准。
易错点:BIP-21二维码只是结构化付款请求,最终支付对象仍以钱包解析出的地址和整数聪为准。
URI拆解
基本格式是bitcoin:<address>,查询部分可含amount、label与message。scheme不区分大小写,地址和参数仍要遵守各自编码规则。
一份可复现检查单
| 核验对象 | 本主题动作 | 失败处理 |
|---|---|---|
| URI拆解 | 从BIP 21确认BIP-21比特币支付URI怎么读的正式定义,并保存网络、地址与读取时间 | 定义或版本对不上时,不继续套用本文步骤 |
| 金额解析 | 在原始返回、签名消息或交易指令中定位对应字段,不用界面缩写代替 | 找不到原始值时,把结果标为未验证 |
| 必需扩展 | 用Bitcoin Developer Guide复核实现行为,特别记录可选扩展与权限主体 | 实现与规范语义不一致时,按具体部署重新评审 |
| 扫码核对 | 构造一个失败样例,确认客户端会明确拒绝而不是静默修正 | 失败仍被显示为成功时,停止上线并补充状态校验 |
记录BIP-21支付URI时,把“输入快照”和“判断结果”分开。该主题的快照包含原始bytes、字段单位、对象地址、区块高度与BIP 21版本;结果注明通过的规则和仍未知的扫码核对。这样即使BIP-21比特币支付URI怎么读随后变化,也能复现当时的结论。
BIP-21支付URI的测试至少覆盖正常路径、缺少金额解析、提交前状态改变及客户端不支持当前版本。前几类验证必需扩展边界,最后一类确认产品不会删除字段或改走未经用户确认的回退路径。
金额解析
amount单位是BTC十进制值。实现应使用十进制定点或直接转聪,拒绝超过精度、负数和溢出值,避免浮点误差。
可验证事实
- BIP-21 URI采用bitcoin:
<address>并可附加amount、label和message等查询参数。 - amount以十进制BTC表示而不是聪,解析器必须避免浮点舍入并在签名前转换为精确整数。
- 以req-开头的未知参数是必需扩展,钱包不理解时必须拒绝整个URI;普通未知参数可忽略。
必需扩展
未知普通参数可以忽略,以req-开头的未知参数必须让钱包拒绝整个URI,因为发送方把它声明为完成付款所必需。
扫码核对
确认页重新展示完整地址、网络、金额和商户备注。label与message不能改变实际收款地址,也不能作为商户身份认证。
证据从哪里来
- BIP 21:正式接口、字段与规范语义,https://bips.dev/21/
- Bitcoin Developer Guide:实现路径、兼容性或安全边界,https://developer.bitcoin.org/devguide/payment_processing.html
BIP-21支付URI的资料访问口径为2026-07-17;遇到Draft状态、可升级部署或可变网络参数,应在后续复核日重新读取BIP 21。
实现差异
二维码可在扫描后被界面重新解释,用户仍要在钱包确认页核对地址、网络和精确金额。 相邻知识可继续对照比特币地址类型、Bech32m地址核验。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。