Php Paypal RestAPI没有启动Webhook

Php Paypal RestAPI没有启动Webhook,php,paypal,paypal-sandbox,webhooks,paypal-rest-sdk,Php,Paypal,Paypal Sandbox,Webhooks,Paypal Rest Sdk,我正在开发一个使用贝宝RESTAPI的支付系统。 到目前为止还不错,我可以在沙箱模式下进行支付,没有任何问题 现在我需要paypal通知我某些事件。。。这就是我想使用Webhook的原因 我创建了一个小脚本,它只是将接收到的主体写入一个文本文件来进行一些调试。然后我在paypal的开发网站上创建了webhook。Webhook模拟器工作正常,来自paypal的json字符串工作正常。然而,当我只是通过我的网站进行支付时,没有webhook。它们似乎没有被调用,因为developer.paypal

我正在开发一个使用贝宝RESTAPI的支付系统。 到目前为止还不错,我可以在沙箱模式下进行支付,没有任何问题

现在我需要paypal通知我某些事件。。。这就是我想使用Webhook的原因

我创建了一个小脚本,它只是将接收到的主体写入一个文本文件来进行一些调试。然后我在paypal的开发网站上创建了webhook。Webhook模拟器工作正常,来自paypal的json字符串工作正常。然而,当我只是通过我的网站进行支付时,没有webhook。它们似乎没有被调用,因为developer.paypal.com中没有显示任何webhook事件

        $payer = new Payer();
    $payer->setPaymentMethod("paypal");

        $payment = new PPayment();
    $payment->setIntent("sale")
        ->setPayer($payer)
        ->setRedirectUrls($redirectUrls)
        ->setTransactions(array($transaction));
我使用的付款方式“贝宝”和“销售”的意图。这在理论上应该是可行的

有人知道吗?我做了一些研究,发现沙箱不时被窃听。。。但这是我需要测试的一个关键特性

希望你们能帮忙


问候语

因此我发现了问题:

基本上,你必须在收到通知之前批准付款


在你的返回站点上,你只需要发送一个批准,你的webhook就会被触发

所以我发现了问题:

基本上,你必须在收到通知之前批准付款


在你的返回站点上,你只需要发送一个批准,你的webhook就会被触发

正如@MollocH所指出的,为了触发PayPal的网络挂钩,你必须在重定向到你的网站后批准付款

    $payerId = // 'PayerID' from the GET query;
    $paymentId = // 'paymentId' from the GET query;

    $apiContext = // you know where to get this from
    $payment = Payment::get($paymentId, $apiContext);

    $execution = new PaymentExecution();
    $execution->setPayerId($payerId);

    try
    {
        $payment = $payment->execute($execution, $context);

        // redirect user to success message or so
    }
    catch(\Exception $error)
    {

    }

正如@MollocH所指出的,为了触发PayPal的网络钩子,你必须在重定向到你的网站后批准付款

    $payerId = // 'PayerID' from the GET query;
    $paymentId = // 'paymentId' from the GET query;

    $apiContext = // you know where to get this from
    $payment = Payment::get($paymentId, $apiContext);

    $execution = new PaymentExecution();
    $execution->setPayerId($payerId);

    try
    {
        $payment = $payment->execute($execution, $context);

        // redirect user to success message or so
    }
    catch(\Exception $error)
    {

    }

这个答案非常罕见,应该在关于paypal Webhook的每一个主题中都加以说明。它确实需要发送支付执行器才能触发PayPal webhook。我也会用一点代码来回答。这个答案非常罕见,应该在关于paypal webhooks的每一个主题中说明。它确实需要发送支付执行器才能触发PayPal webhook。我也会用一点代码来回答。