jvzoo-ipn-signature-verifier 是一个 npm 包,用于验证来自 JVZoo 的 IPN(Instant Payment Notification)消息签名。当你在 JVZoo 上销售产品时,JVZoo 会将有关每个销售的消息发送到您的服务器。你的服务器可以使用 jvzoo-ipn-signature-verifier 包来验证这些消息是否来自 JVZoo,并且在消息被正确验证后执行相关操作。
安装
使用下面的命令在你的项目中安装 jvzoo-ipn-signature-verifier:
npm install jvzoo-ipn-signature-verifier --save
使用
在你的项目文件中引入 jvzoo-ipn-signature-verifier:
const JvzooIPNSignatureVerifier = require('jvzoo-ipn-signature-verifier');
创建一个 JvzooIPNSignatureVerifier 实例:
const verifier = new JvzooIPNSignatureVerifier('your secret key');
解析 JVZoo 发送的 IPN 消息,并将该消息作为参数传递给 verify() 方法:
const message = '...'; // 从 JVZoo 收到的 IPN 消息 const verified = verifier.verify(message);
验证成功的 IPN 消息将被转换为 JSON 对象,你可以使用它来执行相关操作:
if (verified) { const payload = verifier.getMessagePayload(); // 获取消息 payload // 执行相关操作 }
示例代码
下面是一个完整的示例代码,展示了如何使用 jvzoo-ipn-signature-verifier 包从 JVZoo 接收并验证 IPN 消息:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ------------------------- - ---------------------------------------- ----- ------ - ----------------------- ---- -- - -- ----------- --- ------ -- ------- --- ------------- - --- ---- - --- -------------- ------- -- - ---- -- ----------------- --- ------------- -- -- - ----- -------- - --- ------------------------------- ------ ------ ----- -------- - ---------------------- -- ---------- - ----- ------- - ----------------------------- -- ------------------------- ------------------ - --------------- ------------ --- ------------ ------- -------- --- ------------- - ---- - ------------------ - --------------- ------------ --- ------------ ------- ------------ ---------- - --- - ---- - ------------------ - --------------- ------------ --- ------------- --- --------- - --- -------------------- ------------------- ------- -- -------------------------
在这个示例中,我们创建了一个简单的 HTTP 服务器,用于接收来自 JVZoo 的 IPN 消息。当从 JVZoo 收到消息时,我们创建了一个 JvzooIPNSignatureVerifier 实例来验证消息的签名。如果签名验证成功,则执行相关操作,例如更新库存,发送确认邮件等。如果签名验证失败,则返回 400 响应。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006734f890c4f72775837f3