微信离线支付

微信支付(智能设备离线支付)

离线支付能力对智能穿戴设备很重要,如果支付要依靠与手机连接,支付能力过于依赖手机,则在使用太多限制,是用户感觉使用穿戴设备支付不够便捷,如果只用绑定一次就可以离线支付这样便捷性自然凸显出来,增加便携性.现在微信客服端已经可以在没有网络下支付,所以要是智能手表具有微信支付能力,不需要太多的改动.下面可以简单陈述下实现

绑定

首先绑定环节依赖与蓝牙通讯,通过蓝牙把用户信息传到手表,如果想要做通用方案,手机端微信App和手表端微信支付App需要通过蓝牙通讯.不要过多依赖与手表提供的透传接口,这样在不同厂商的手表都要做适配.

手表微信支付app

手表微信支付App在绑定阶段需要提供蓝牙的MAC地址蓝牙的通讯协议,以及手表的型号,MAC和蓝牙设疑是用来手机和手表通讯,手表型号是校验,比如后台可以配置不同的型号使手表具有支付能力等,否则告知用户当前设备部支持,上述信息一般通过一个二维码呈现,手机微信APP通过扫码获取手表MAC蓝牙通讯协议型号信息,然后与微信支付后台检验时候支持改设备,如果支持改设备就通过MAC和通讯协议信息绑定手表蓝牙,为下一步传送个人信息到手表.这里只所以要传通讯协议为了考虑iOS绑定手表的情况,iOS一般都是用的是BLE协议.

手机微信App

微信App需要有绑定手表能力,又有远程解除手表支付能力的能力.微信App需要有如下几个能力.

  • 给据手表提供的二维码信息建立蓝牙连接.
  • 传送个人信息到手表(生成条形码相关的证书等),这些信息主要用来生成支付码
  • 远程解绑的能力,考虑到离线支付,所以这里主要为了告诉后台该微信账号的手表支付能力失效,即使手表能产生支付码也不能支付.

支付

支付就是手表端生成二维码或者条形码,让扫码枪扫完成支付,这里考虑到离线支付,支付成功或者失败都必须依赖商户的反馈,当然这里可以在支付成功的时候微信后台发送一个短信给用户,告知用户消费了多少,或者微信推送支付信息,这可能有一定延迟,最好是通过短信和微信双重通知告诉用户消费金额.考虑到手表支付无法输入支付密码,所以这里要考虑微信支付限额情况.

支付安全性问题

安全涉及加密算法,证书随机数等,加密算法通常用C或C++ 实现增加破解难度

风险控制

因为是离线支付,所以要支付要限额,并且在手表丢失之后可以远程解绑,这样及时手表丢失能拉出来二维码,也不能支付.这些都需要后台实现.