我正在尝试设置谷歌钱包支付流程,以便用户购买锦标赛的参赛作品。为了做到这一点,用户必须填写一堆关于他们自己的信息(姓名,联盟球员号码,联系电话号码等),还有一些隐含的其他数据,例如一个唯一的标识符。他们正在进入的比赛。
似乎有两种方法可以在Google电子钱包中实现这一点,我想知道我是否错过了另一种更好的工作流程和/或是否有这两种方式中的一种。
可能性#1
当用户点击钱包按钮时,我将表单序列化并使用ajax将其提交给我的服务器。如果表单已正确填写,服务器会将有关表单的所有内容编码到JWT的sellerData字段中,并异步返回JWT。然后我将这个JWT传递给钱包,期望在我的回发处理程序中接收它。
回发处理程序然后使用JWT sellerData字段中的信息构造条目并将其记录在数据库中。
这种可能性对我来说很直观,而且我已经实现了它,但是我遇到了sellData字段的200字符限制,因为它包含多个人的姓名,电话号码和各种其他表单元素。没有空间。我没有解决方法,欢迎提出想法。
这种方法的优势在于,在付款成功之前我的数据库中没有创建任何内容,但我不知道如何解决在JWT中表示整个表单以便以某种方式将其传递给回发处理程序的困难。 / p>
可能性#2
用户只需使用正常的Web表单提交流程提交报表表单,该流程会在数据库中创建一些内容。以这种方式新创建的数据库对象被标记为“未付”,因此不完整。
一旦用户在数据库中成功创建了他们的条目,他们就会看到一个他们可以支付的第二个页面。这样做效果更好,因为我现在只需将刚刚创建的对象的数据库密钥放入sellerData字段,而不用担心大小限制。
它确实存在令人遗憾的副作用,即在数据库中包含这些半完成的对象,以及冒着用户不太了解两步注册然后付费流程而忘记支付的风险。我必须非常谨慎和积极主动地确保用户意识到A)可以提交没有付款信息的表格,B)提交第一个表格并不意味着他们已经完成了。
思想?
答案 0 :(得分:2)
我认为选项2是一个非常标准的购买流程。第1步输入您的信息第2步确认您的信息并使用电子钱包付款。
然后,onsuccess回调可以将用户重定向到购买收据页面。
我的消费者心灵没有看到任何购买流程的危险信号。
答案 1 :(得分:0)
我最终选择了选项2,因为这对我来说最简单,我认为这不会让用户感到困惑。
我错过了第三个选项,即我可以允许人们购买空白的报名表,然后在购买后填写。我想这可能会更好;它更好地匹配了面对面的购买体验,因此对购买者来说更加熟悉,它避免了那些认为他们已经注册但却没有意识到他们必须付钱的人的问题。