A 作为商户 B 作为微信人脸 C 作为商户 D 作为微信支付后台 A、C: 步骤 1 程序启动时初始化 A ->> B: 1. 程序启动时初始化 -->> A: (返回初始化结果)注意A、C:第2步获取数据,SDK调用凭证 A ->> B: 2. 获取数据 -->> A: a()A ->> C: 3. 获取 SDK 调用凭证 C-> >D: 3. fo()D-->>C: 返回 -->> A: 返回A,C: 步骤3 启动人脸识别,发起订单刷脸支付 A ->> B: 4. 进行人脸识别->> B: 开始人脸识别 BB ->> B: 进行人脸识别 B ->> B: 完成人脸识别 B -->> A: 回调返回人脸识别结果 (, )B -->> A: ack(返回人脸识别结果) A ->> C: 5.
发起订单刷脸支付 C ->> D:发起订单支付() D -->> C:返回支付结果 alt 支付成功/失败 C -->> A:返回支付结果 else 支付结果未知(例如:支付中/网络超时)注意C、D:查询支付结果循环直到:返回确认订单状态/超过轮询时间C ->> D:6.查询订单状态-->> C:返回订单状态 endC -->> A:返回支付结果opt。 如果轮询结束,仍然没有A、D成功付款单:撤销交易,避免用户扣款不发货。 情况(后台可以异步取消)循环取消交易,直到成功 C ->> D: 7. 取消交易 -->> C: 返回 A 上的撤销结果,C: 步骤 4 更新支付结果(2.13及以上版本不支持该接口),完成支付选项2。 该接口在13及以后版本废弃,无需调用A ->> B: 8、更新支付结果 sult()B->>B:用户确认支付结果 A ->> B:关闭刷脸应用 BB -->> A: (界面关闭,触发回调) A ->> A: 程序退出(..)endA ->> B: 9.释放资源