您的位置首页 >互联网 >

微信扫二维码被骗1800(扫微信二维码诈骗原理)

导读 大家好,小品为大家解答以上问题。微信扫二维码被骗1800,扫微信二维码诈骗原理这个很多人还不知道,现在让我们一起来看看吧! 解答:1、最

大家好,小品为大家解答以上问题。微信扫二维码被骗1800,扫微信二维码诈骗原理这个很多人还不知道,现在让我们一起来看看吧!

解答:

1、 最近由于业务需要,需要开发支付码功能。该界面底层将聚合市场主流钱包应用的支付码功能,如微信支付、支付宝支付等。

2、 Ps:支付码有很多别称,比如微信支付终端的支付产品是“支付码支付(之前的单据叫信用卡支付)”,而支付宝终端的产品是“面对面支付-一次支付”,有些单据会变成“二维码扫描支付”。

3、 下文将统一使用微信的定义,统称为支付码支付。

4、 有些学生可能不熟悉支付代码,但事实上,我们可能每天都在使用这个功能。

5、 我们去便利店买早餐,最后结账的时候用支付宝/微信支付。收银员会让我们出示支付宝/微信支付码,然后用扫描枪拿到这个码,最后发给微信/支付宝服务器完成一次扣款。

6、 以支付宝为例,具体的客户端支付流程如下:

7、 来自支付宝官网

8、 支付码支付后台调用流程如下:

9、 付款代码付款详细版本流程

10、 微信/支付宝支付码的支付调用流程类似。官网写得很清楚。在这里,我们直接使用支付宝的官网流程。

11、 从上面的流程可以看出,支付码支付可以说是一个“同步”的接口,即接口同步返回扣款结果,不需要通过另一个异步通知来获取结果。

12、 然而,我们需要注意这里。由于“安全风险控制”等问题,用户在支付支付码时可能需要输入密码确认支付。这时,支付码界面会返回等待用户支付。

13、 访问时,一定要正确判断并返回信息。如果返回以下结果,则表示用户此时正在输入密码。

14、 支付微信:“err _ code=用户支付或err_code=SYSTEMERROR”

15、 支付宝:“代码=10003或代码=20000”

16、 微信支付码在以下情况下需要输入密码进行二次确认。

17、 支付宝官方文件中尚未发现相关规定。经过测试,当支付金额大于“2000”时,需要输入密码。如果有熟悉秘密验证其他规则的同学,可以在评论区留言。

18、 还有一点需要注意的是,对于微信/支付宝的其他支付接口,支付成功后,微信/支付宝服务器会发送消息告知支付结果。但是支付代码不同,所以这个界面上不会有消息通知。

19、 因此,如果返回支付码等待用户输入密码,商家后台服务必须定期调用微信支付/支付宝查询界面,获取支付结果。

20、 撤销付款

21、 在一定时间内,如“30s”,轮询查询支付结果返回等待用户支付,或支付交易过程返回失败或支付系统超时。在这两种情况下,官方文件都建议立即调用取消接口来取消交易。

22、 如果用户未能支付此订单,取消界面将关闭订单;如果用户支付成功,取消界面会将订单资金返还给用户。

23、 也就是说,取消支付接口在功能上等同于“关闭订单”加“退款”。虽然撤销也有退款功能,但两者有很大区别:

24、 “支付类型限制”

25、 微信/支付宝取消支付“只能取消支付码支付类型的订单”,退款可以支持各种支付类型的订单。

26、 “退款金额”

27、 注销界面只能是“全额退款”,退款界面支持入局金额,可以全额退款,也可以部分退款。

28、 “时间限制”

29、 取消界面的时限比较短。比如微信支付取消支持7天内订单,支付宝取消界面只支持当天订单。

30、 但是退款界面可以支持长期订单退款。比如微信支付退款支持一年内下单,支付宝只支持三个月内下单。

31、 “基于以上差异,如果其他正常支付单据需要实现同样的功能,请调用退款接口,官方单据建议只有在异常情况下才调用取消支付接口。」

32、 另外,在年代

33、 其实提供的功能和微信/支付宝撤销类似,要求每个支付公司提供具体的单据研究。

34、 与撤销付款有关的问题

35、 由于取消付款,可能导致退款或关闭订单。在访问之前,有一些不清楚的问题,在官方文件中也没有发现任何信息,所以我们别无选择,只能对相关问题进行测试和验证。

36、由于规定,支付机构不能直连微信/支付宝,所以以下测试基于银联微信/支付宝通道。

37、银联提供的接口与直连微信/支付宝存在些许差别,但是主要功能一样。

38、❞

39、重复撤销

40、通过实测,微信/支付宝撤销接口幂等实现,重复撤销返回结果一致。

41、不过需要注意需要正确判断撤销的返回结果。

42、比如微信撤销接口成功判断还需要结合 recall 字段,支付宝也有类似字段。

44、订单状态

45、微信/支付宝订单状态处理不太一致,微信订单状态比较复杂:

47、微信支付订单状态机

48、也就是说,付款码订单一旦被撤销成功,再次查询订单,状态将会返回为「已撤销(REVOKED)」。

49、另外微信对于付款码支付订单有限制,是无法调用关闭订单接口关闭订单,所以在付款码的场景中,是不存在订单状态为 「CLOSED—已关闭」。

50、接下来说下支付宝的状态,支付宝文档没要给出类似的订单状态机,我根据官方一些文档,以及一些测试结果总结出下方订单状态图。

52、所以支付宝的付款码订单一旦撤销成功,再次查询原单状态将会返回 「TRADE_CLOSED」。

53、对账文件数据

54、当天产生交易之后,次日我们需要拉取微信/支付宝对账文件,逐一核对数据,防止少账,多账问题。

55、对账设计流程可以参考之前写过的文章:

56、聊聊对账系统的设计方案

57、微信/支付宝对账文件只会记录交易成功的订单,所以未支付的订单被撤销是不会出现在对账文件中。但是如果支付成功了,然后又被撤销成功,将会在对账文件中产生「两笔记录」,一笔正交易,一笔反向退款记录。

58、正交易与普通的退款的记录都比较好识别,一般可以使用我们上送给微信支付宝订单号。但是撤销导致退款记录,我们无法仅用一个单号识别,我们需要结合另外的字段区分判断。

59、微信对账文件撤销产生那笔退款,交易状态为 「REVOKED」,所以我们可以采用商户订单号加交易状态识别出一条记录是否为撤销产生退款记录。

61、❝

62、上面银联订单号可以当做是微信支付宝内部产生订单号

63、❞

64、支付宝对账文件比较麻烦,撤销产生的退款记录不能跟微信根据交易状态区分。从对账文件上看支付宝撤销产生退款与普通退款接口产生退款记录是一样的。

66、仔细研究对账文件可以发现一些区别,撤销导致退款记录退款批次与正交易支付宝内部订单号是一致的。而正常退款记录,退款批次号是由商户自己上送的。所以我们可以以此筛选出撤销产生的退款记录。

67、撤销失败

68、极端情况下,有可能产生多次撤销都失败的奇葩情况,那怎么办?

69、这种情况下就不用往系统自动处理方向考虑了,通过线下人工介入处理吧,毕竟这种概率太低了。引用知乎@天顺的文章中一句话:

70、❝

71、很多时候人工保障比你动脑筋想异常中的异常如何系统自动处理来得反而高效和低成本

72、❞

73、这句话大家仔细品,越品越有道理!

74、最后说一句(求点赞)

75、付款码支付接入其实比较简单,主要难点在于撤销接口引入之后对于现有的系统的改造,比如撤销成功的订单之后,是直接修改原单的成功状态到撤销状态,还是说再创建一条撤销记录?还有对账系统核对时,对端记录可能比本端多,如何核对?这些问题大家在接入之后一定结合现有系统好好思考一下。

76、最后,文章难免存在一些疏漏,大家如果发现,可以在评论区留言指出,谢谢支持。

本文就为大家讲解到这里,希望大家看了会喜欢。

标签:

免责声明:本文由用户上传,如有侵权请联系删除!