我目前正在开发的 Wix 网站安装了定价计划应用程序,根据这些计划,用户可以通过我正在开发的应用程序访问我在网站上公开的某些 API 功能。由于我无法在 http-functions.js 文件中检索用户对象,因此我必须创建一个单独的集合来存储有关用户订阅的数据。订购计划后,这工作正常,因为我可以挂钩 onPlanPurchased 事件并执行我需要的任何逻辑来修改所述集合。但是,不存在取消计划的此类事件,这意味着对集合的任何修改都必须通过从客户端代码调用的后端函数来完成,例如:
cancelPlan(wixUsers.currentUser.id)
.then( (results) => {
if (results === "SUCCESS") {
wixPaidPlans.cancelOrder(orderId)
.then( () => {
wixWindow.openLightbox("PlanCancelled");
})
.catch( (err) => {
wixWindow.openLightbox("PlanCancelFailed");
});
}else {
wixWindow.openLightbox("PlanCancelFailed");
}
})
.catch( (err) => {
wixWindow.openLightbox("PlanCancelFailed");
});
正如您所看到的,这里的问题是,由于这是在浏览器中运行的,有人是否可以修改它并仅运行 wixPaidPlans.cancelOrder() 行而不运行我的后端函数?如果是这样,有人可以取消付款,但仍然可以通过我谈到的 API 功能访问我的网站提供的内容。我的担心正确吗?如果是这样,有人能告诉我我还能怎么做吗?谢谢。
我不久前忘记了这个问题,但想更新它,因为我最终找到了解决方案。
Wix 有多个 webhook,可用于指向您网站上的 API/HTTP 函数。其中一个 webhook 是当付款计划被取消时,该事件可以指向 http-functions.js 中的一个函数,并且可以在那里完成相关逻辑,确保一切都可以按预期执行,但是流程也可以由用户启动。
@Letal1s 我知道这不是最好的堆栈溢出行为,但我在其他地方找不到此信息。
您的cancelPlan后端模块是什么样的?
我目前正试图允许用户自行取消定价计划。
希望能帮到你。
X