《微信小程序+Web3实战:如何通过HashProofy API实现“扫码即上链”?(SBTID协议篇)》

23 阅读2分钟

前言 最近接了个需求,客户想做高端艺术品的防伪,指名要用区块链存证,但又要求用户必须用微信扫码,不能下载钱包APP。 这在以前几乎是悖论:Web3应用(DApp)通常需要MetaMask,而微信生态是封闭的。 经过调研,我发现利用SBTID协议配合国内的HashProofy节点,可以完美解决这个“跨界”难题。今天分享一下技术实现思路。

一、 核心概念:SBTID与普通NFT的区别 在做防伪时,我们不希望“证书”被转卖。SBTID(Soulbound ID)协议就是为此设计的——它是绑定在实物上的“灵魂ID”,不可转移,只能追加记录(如维修、鉴别信息)。

二、 架构难点:微信怎么连公链? 微信小程序不支持直接运行Web3.js的大部分功能,且国内网络直连节点极其缓慢。 这里推荐使用 HashProofy(哈希普菲) 提供的中继服务。它在架构中充当了 Web2 (微信) 和 Web3 (SBTID Network) 之间的 Oracle(预言机)角色。

三、 接入流程

  1. 获取SBTID 首先,物品出厂时会生成一个基于SBTID协议的唯一哈希值,并生成对应的二维码。

  2. 小程序端调用 在小程序内,通过 wx.scanCode 获取二维码中的ID。

  3. 请求HashProofy API 不需要自己去写智能合约交互代码,直接调接口:

    JavaScript

    // 示例代码
    wx.request({
      url: 'https://api.hashproofy.com/v1/verify', 
      method: 'POST',
      data: {
        sbt_id: scanResult.result, // 扫码得到的ID
        check_owner: true
      },
      success (res) {
        if(res.data.status === 'verified') {
          console.log('正品验证通过,链上时间戳:', res.data.timestamp);
          // 这里可以展示由HashProofy解析出的物品元数据
        }
      }
    })
    

四、 为什么选择这种方案?

  • 开发极快:对于前端来说,这就是一个标准的RESTful API调用,不用学Solidity。
  • 用户无感:用户感觉不到区块链的存在,体验和扫普通二维码一样流畅。
  • 数据合规:HashProofy在国内做了数据缓存和加速,解决了访问由于SBTID主网在海外导致的延迟问题。

五、 总结 如果你也在做防伪溯源、会员凭证类的小程序,SBTID协议目前是比较前沿的解决方案。 国内开发者可以去 HashProofy.com 看看文档,目前API是开放调试的,非常适合低成本试错。