问题标签 [paypal-webhooks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
paypal - 沙盒中的 PayPal Webhook 不起作用
我将 REST API 集成到我们的系统中。唯一缺少的是对我创建的 webhook 的响应。
Webhook 已在我的沙盒应用程序中注册,但是当我使用应用程序密钥在沙盒中创建付款时,我没有接到对 Webhook 接收器的呼叫。使用 webhook 模拟器效果很好。
我做的步骤:
- https://api.sandbox.paypal.com/v1/oauth2/token
- https://api.sandbox.paypal.com/v1/payments/payment
- 使用方法重定向到结果链接:“REDIRECT”
- 使用沙盒账户完成支付
有什么我做错了吗?在沙箱中使用它有什么问题吗?
paypal - 贝宝和网络钩子
通过 REST API,我可以创建计划,并且可以为订阅(定期付款)创建协议。
(作为一般意见:PayPal 还应该允许在开发人员沙箱/实时中创建计划)
创建协议时,我使用卖方 oAuth2 令牌(相对于会员令牌)
Webhooks 在开发者帐户中设置为“全部”,测试正常,模拟正常。
但是,当事件(https://developer.paypal.com/docs/integration/direct/rest-webhooks-overview/#event-type-support)发生时,我不会收到通知。
问题:
- 难道我做错了什么 ?
paypal - 永远不会发送 PayPal webhook 事件?
我们有一个使用 PayPal 作为付款方式之一的制作游戏。在某些情况下,我们永远不会收到 webhook 通知。
这是正在发生的顺序。有时我们会从这个序列中获得 webhook,而其他时候我们不会。在服务器上,我们使用 Java API。所有这些都是生产(不是沙盒)贝宝服务器的行为。
- 用户选择产品后,它会调用我们的服务器,该服务器通过 Payment.create() 创建 Payment 对象。此时状态为“已创建”,我们将用户重定向到链接中返回的approval_url。
- 用户批准付款并被发送回我们的服务器。我们通过 Payment.get() 获取付款,这是成功的,并且状态为“已创建”。
- 我们使用 PaymentExecution 执行付款。这将返回更新状态为“已批准”的付款。
- 然后我们等待 WebHook 通知我们付款已完成。有时,从不发送此 webhook,导致购买不完整。检查 PayPal 控制台,付款不存在 webhook 事件,即使付款显示为已完成。
这里的问题是:
- 这是正确的顺序吗?还是缺少什么?
- 当用户从 PayPal 返回而不是仍然“创建”时,付款不应该被“批准”吗?
- 成功执行后,付款不应该是“完成”还是“进行中”?
- 处理 webhook 永远不会到达的情况的正确方法是什么?继续轮询付款直到状态更新?
paypal - Paypal 不会在沙盒中的 BILLING.SUBSCRIPTION.CANCELLED 上触发 webhook
我没有在现场测试过,但目前我有一个订阅以下事件的 webhook
- 已取消结算订阅
- 已创建结算订阅
- 重新激活计费订阅
- 结算订阅暂停
- 计费订阅已更新
我正在接收 CREATED 的 Webhook 事件,但当用户从其 PayPal 仪表板取消订阅时,没有发送任何内容。
这是预期的行为吗?我应该订阅另一个事件来捕获该用户操作吗?
paypal - 收到帐单协议付款的 Paypal Webhook?
收到计费协议的付款时是否会触发 webhook?
我创建了一个计费计划,并让用户接受每月定期付款的计费协议。
执行计费协议时,将BILLING.SUBSCRIPTION.CREATED
触发 webhook。
每月收到付款时是否会触发 webhook?
我已经看到了一些关于这个的较早的讨论,我不确定它是否已经实现,或者我是否应该仍然使用 IPN。
paypal - 未收到 Paypal webhook 事件
我正在使用 paypal REST API 实现一个简单的支付工作流程。我首先创建一个付款,将用户重定向到此调用返回的 URL,并在批准后执行付款。为了使其更可靠,我想使用 webhook 通知。
这就是它开始成为问题的时候:我没有收到任何通知。
鉴于我到目前为止阅读的不同问答,以下是我的评论:
- 整个付款过程正常,我可以与 Paypal 通信并验证付款。
- 使用 webhook 模拟器时它工作正常,所以我知道我的系统没问题。
- 我订阅了所有活动。我希望至少收到“PAYMENT.AUTHORIZATION.CREATED”和“PAYMENT.SALE.COMPLETED”通知(如果付款被拒绝,则为“PAYMENT.SALE.DENIED”)。我检查了它们是否列在支持的事件类型列表中。
- 我仍在使用沙盒环境,但我没有看到任何说明它不应该在这种情况下工作。
- “Sandbox Webhooks Events”是空的,但我不确定它们是否应该出现在这里。
我不知道这个相关 ID/调试 ID 应该在哪里。
编辑:从答案中,可以在响应标头中找到相关 ID。这里是地雷:- aa25ee518487a // 创建 webhook
- 1fbf78ce3a034 // 支付创建
- 7a5d3c34daa5d // 支付执行
我还应该做些什么来让它发挥作用吗?还是我可以做更多的事情来调试它?
奖励:在我的情况下,我期望“PAYMENT.AUTHORIZATION.CREATED”和“PAYMENT.SALE.COMPLETED/DENIED”通知是否正确?
EDIT2:所以一个月后,我又回到了这个问题上。我现在可以在仪表板中看到 webhook 事件(不知道发生了什么变化),它的状态是 PENDING。它的事务 ID 是 4396a630-78bc-11e6-8890-77339302725b。知道如何获得有关它为何未决的更多详细信息吗?
php - Paypal webhook 到达服务器,但值为空白
我正在尝试使用 webhook 模拟器来确保信息至少在继续之前到达我们的服务器。好消息是在我的日志中我看到请求做了一些事情,但问题是所有变量都是空白的。我正在使用 php,根据我的打印输出,$_GET、$_POST 和 $_REQUEST 都是空数组。有人对如何解决此特定问题有任何提示吗?
以下是我们服务器上唯一的代码(再次,只是想看看数据是否成功)。
事件发生后的服务器日志:
paypal - BILLING.SUBSCRIPTION.CANCELLED 不会在用户操作时触发?
我想跟踪有效计费协议的订阅状态。
现在我认为 webhook 会很方便。
我有一个监听器,BILLING.SUBSCRIPTION.CANCELLED
它被描述为
取消计费订阅时触发此事件。
现在,当用户转到他的贝宝帐户并取消订阅时,什么都不会被解雇。仅当我使用 REST API 取消订阅时,才会触发此挂钩。这有什么意义呢?当我进行 API 调用时,我会立即收到订阅是否被取消的响应,为什么 sb 需要额外的 webhook 呢?
唯一有用的应用程序是跟踪用户使用他的贝宝帐户所做的事情。现在我的问题是:这是沙盒行为吗?当用户直接通过贝宝取消订阅/协议时,钩子会在“现实世界”中触发吗?
paypal - 将 PayPal webhook 与 NVP DoExpressCheckoutPayment 结合使用
我正在一个网站上工作,用户可以在该网站上向另一个用户支付产品费用,获得付款的用户有他的API Signature
设置,并且付款是使用完成ExpressCheckout (NVP)
的(付款人只是被重定向到他在必要时登录的 PayPal 页面和只需单击一个按钮即可支付)。
问题是我尝试使用 webhook 来跟踪这些付款的退款,所以我以后可以通过回调 URL(php 函数)将退款数据插入到我的数据库中,但是我设置的 URL 根本没有被调用(我'之前在同一个 URL 上模拟了一个事件,一切都很好)。
我试图通过设置我API Signature
和我的一个朋友向我支付一些美分(通过DoExpressCheckoutPayment
)来让这个工作,然后我将它们退还给他(没有电话,只使用 PayPal 网站)。
Sandbox Webhooks 事件页面或 Live 页面上也没有显示任何内容。我已经尝试向我的 webhook 注册其他事件,例如“付款捕获完成”或“付款销售完成”,但结果相同。
我必须更改帐户中的某些设置吗?为了使用 webhook,我创建了一个 REST API 应用程序,但我看到有一个用于 NVP/SOAP API 应用程序的选项。如果 webhook 不起作用,我已经考虑过 IPN。