切换到新的 Facebook 本地货币 API 后,该过程正在运行,但我的服务器不参与该过程,所以我真的不知道用户购买硬币是否导致现在没有调用支付回调 URL(使用静态支付) .
我尝试使用实时更新来获取 Facebook 数据,但可以使其正常工作,让服务器参与此过程以便它知道购买的最佳做法是什么?
出于安全原因,我更喜欢从 Facebook 而不是我的客户获取更新。
切换到新的 Facebook 本地货币 API 后,该过程正在运行,但我的服务器不参与该过程,所以我真的不知道用户购买硬币是否导致现在没有调用支付回调 URL(使用静态支付) .
我尝试使用实时更新来获取 Facebook 数据,但可以使其正常工作,让服务器参与此过程以便它知道购买的最佳做法是什么?
出于安全原因,我更喜欢从 Facebook 而不是我的客户获取更新。
好的,搜索日志后我找到了解决方案
有两种主要方法可以通知您购买结果,还有一种方法可以验证任何付款信息。
首先,Facebook 将通过 JavaScript 回调返回订单的详细信息。发送到此回调的数据包括:
payment_id,唯一标识交易。数量,表示所售商品的数量。request_id,可选,开发者可以在调用我们的Javascript SDK渲染支付对话框时为交易提供自己的唯一标识。然后在购买完成时返回此值。status,表示交易的当前状态,即'pending'、'completed'、'failed'等。
其次,Facebook 将发布实时更新通知开发者新订单已完成。开发人员可以订阅 payment_object 回调来跟踪订单完成情况,使用 payment_id 作为每笔交易的唯一身份参数。
第三,在任何时候,payment_id 都可以通过 Graph API 来验证交易的细节。可以使用 payment_id 查询关联的 user_id、updated_time 和 amount 等详细信息。Graph API 还允许您访问更多详细信息,包括与交易相关的任何退款或争议。
如果由于某种原因 JavaScript 回调和实时更新都失败并且您没有收到 payment_id,我们还允许您使用可选的 request_id 参数查询 Graph API,该参数可以由开发人员在调用 Facebook 支付对话框时指定。
请参阅: https ://developers.facebook.com/docs/concepts/payments/ 和: https ://developers.facebook.com/docs/howtos/payments/fulfillment/#rtu