我正在制造一个Discord机器人,该机器人具有在其中生成付款链接的地方,一旦付款,它就会在聊天室中发送一条消息,指示已付款。我以前看过它,所以我知道这是可能的,我已经完成了基本工作,但是我陷入了困境。我使用Paypal-express-checkout npm插件,当您运行-pay(amount0)时,它为给定的金额生成了一个付款链接,但是当它返回到我的返回URL(confirm.php)时,URL中有变量,但是我不知道如何将它们发送到node.js应用程序,或者不知道如何将它们发送给node.js应用程序,以便它可以确认它确实是真实的。我使用的插件有2个函数,其中一个创建了链接,其中一个确认了链接,因此为什么我需要将变量发送到php文件。
谢谢
paypal.pay(message.id, args[0], 'Invoice', 'USD', function(err, url) {
if(err) {
console.log(err);
return;
}
message.channel.send({embed: {
color: 0x28d651,
title: "Slashy Payment",
fields: [
{
name: "Invoice Amount",
value: "$" + args[0],
inline: true
},
{
name: "Invoice Client",
value: message.author.username,
inline: true
},
{
name: "Invoice Status",
value: "Pending..."
},
{
name: "Payment Link",
value: '[Pay here](' + url + ')'
}
],
timestamp: new Date(),
footer: {
icon_url: bot.user.avatarURL,
text: "© Slashy 2018"
}
}
});
});
答案 0 :(得分:0)
对于任何想知道我最终如何做到的人,只需将message.channel.id存储在贝宝返回链接的URL中,当他们到达页面时,将信息保存到带有频道的数据库中id并仅在频道中每5秒钟检查一次数据库(如果该项目已在数据库中标记为已付款)。真的很酷的修复程序似乎正常工作
答案 1 :(得分:0)
为您提供另一种解决方案,而不是轮询,只需创建一个快速Web服务器或打开一个TCP套接字即可。是的,php也可以执行tcp套接字。无论如何,一旦paypal将其消息返回到您的php服务器,请让php脚本向也正在运行您的机器人的node.js express服务器发送请求。我不知道人们将如何通过您的机器人购买期权,但是,这似乎是一个不错的选择,而不是如果大量的人开始购买:D会浪费一些CPU时间,但这是个好问题吗?