发表日期:2017-11-18 16:26:56文章编辑:025app.com 标签:公司新闻
请问create_ticket()什么时候调用? ,当用户第一次取钱时, 调用create_ticket(),用户得到ticket_id_2,然后调用idempotent_withdraw(ticket_id_2, amount),假设服务器返回的OK用户没有收到? 此时,用户进行重试(再次取钱),此时为什么没有重新调用create_ticket()?
此外,采用什么方法能够区分用户是重试还是就是想取两次钱?
至于你所说的问题:我说下我的看法,用POST /tickets来实现create_ticket;用PUT
/accounts/account_id/ticket_id&amount=xxx来实现idempotent_withdraw,我想create_ticket()的调用应该接收到的服务器的结果的影响,如果没收到或FALSE,则不调用create_ticket(),当重试时,则ticket_id不变,直接PUT(幂等性的)请求;如果收到OK,若向第二次取钱,则重新POST(非幂等性的)产生不同的ticket_id,这样两问题就迎刃而解。