在应用程序中添加事务管理器来解决此问题。应用程序应该监听来自App Store服务器的所有通知,并检查通知中包含的事务ID是否已在本地事务缓存中触发。如果事务ID已经存在,则不执行任何操作,否则将该事务ID添加到事务缓存中以避免重复。代码示例:
class TransactionManager {
private transactions: Set = new Set();
public addTransaction(transactionId: string) {
if (!this.transactions.has(transactionId)) {
// Perform action for new transaction ID
this.transactions.add(transactionId);
}
}
}
// Listen to all App Store server notifications
app.post('/app-store-notify', (req, res) => {
const transactionId = req.body.transactionId;
transactionManager.addTransaction(transactionId);
// Handle notification
});
在这个示例中,我们在应用程序中创建了一个事务管理器,用于跟踪已处理的事务ID。在处理App Store服务器通知时,我们首先检查该事务ID是否已存在于事务管理器中,如果不存在,则执行我们的处理逻辑并添加该事务ID到事务管理器中,以避免重复处理。