跟踪订单状态
用户购买后,您的应用程序可执行以下操作:
- 在应用程序UI中显示订单状态
- 成功支付后划走相应用户余额
- 成功支付后发放购买的商品
要实现这些操作的逻辑,需使用OrderTracking.Instance.AddOrderForTracking
SDK方法跟踪订单状态。将以下参数传入方法:
projectId
— 发布商帐户中的项目IDorderId
— 从通过购物车购买、一键购买或用虚拟货币进行购买收到的订单IDonSuccess
— 订单变为done
状态时的回调onError
— 艾克索拉服务器返回错误时的回调
此方法封装了多个订单状态跟踪方法。根据应用程序的面向平台不同,机制也有所不同:
- 对于WebGL编译版本,跟踪基于支付界面小组件的
postMessage
事件。如果支付中心小组件发送了一条订单状态已变为done
或cancel
的消息,则跟踪停止。
- 对于其他平台的编译版本,跟踪使用简单HTTP请求(短轮询)和WebSocket请求。跟踪根据以下算法执行:
- 建立一个Web socket连接。
- 如果订单状态在5分钟内未变成
done
或cancel
,则关闭Web socket连接。如果订单状态变为done
或cancel
,则跟踪停止。 - 通过短轮询继续跟踪订单状态。每3秒钟发送一次简单HTTP订单状态请求。遇以下条件停止跟踪:
- 订单状态变为
done
或cancel
- 订单状态在10分钟内未变成
done
或cancel
- 订单状态变为
注:
如Web socket连接失败,则使用短轮询跟踪订单状态。
您也可以实现:
- 使用
CheckOrderStatus
SDK方法请求订单状态和订单内容 - 在应用程序的服务器侧实现对艾克索拉交易事件的Webhook处理
本文对您的有帮助吗?
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。有用链接
上次更新时间: 2023年10月10日发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。