php - 如何将通知 url 添加到 REST API paypal?

标签 php paypal

我在paypal中创建了简单的支付

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

    $item1 = new Item();
    $item1->setName('some name')
        ->setCurrency('USD')
        ->setQuantity(1)
        ->setSku("my id product") 
        ->setPrice(11);

    $itemList = new ItemList();
    $itemList->setItems(array($item1));

    $amount = new Amount();
    $amount->setCurrency("USD")
        ->setTotal(11);

    $transaction = new Transaction();
    $transaction->setAmount($amount)
        ->setItemList($itemList)
        ->setDescription("Payment description")
        ->setInvoiceNumber(uniqid());

    $baseUrl = "https://my_site_address.com";
    $redirectUrls = new RedirectUrls();
    $redirectUrls->setReturnUrl("$baseUrl/ExecutePayment/?success=true")
        ->setCancelUrl("$baseUrl/ExecutePayment/?success=false");


    $payment = new Payment();
    $payment->setIntent("sale")
        ->setPayer($payer)
        ->setRedirectUrls($redirectUrls)
        ->setTransactions(array($transaction));


   $request = clone $payment;

    try {
        $payment->create($apiContext);
    } catch (Exception $ex) {
        print_r($ex);
        exit(1);
    }

    $approvalUrl = $payment->getApprovalLink();
    print_r($approvalUrl);

执行此代码后一切正常,我被重定向到 Paypal 沙箱,登录后我可以付款。但我不知道如何设置我的 notify_url?

有人可以帮忙吗?

最佳答案

对您的问题的直接而简短的回答是,您可以通过 REST API 设置“notifyUrl”:

$transaction = new Transaction();
$transaction->setAmount($amount)
            ->setItemList($itemList)
            ->setDescription(" ...... ")
            ->setNotifyUrl("your notifyUrl here")
            ->setInvoiceNumber($invoiceNo);

但是不是接收 REST 通知的正确方式。改用“Webhooks”(尽管使用 PHP 的 Webhooks 太老套了,但最终您会找到解决方案。如果您需要有关如何执行此操作的更多详细信息,请评论此答案)。

返回NotofyUrl: 为了进行测试,我能够通过 notifyUrl 接收通知,但是 在实现 webhook 后,PayPal 仍会为每次新付款向我已删除的旧 NotifyUrl 发送通知。我从代码中删除了它,我在我的 PayPal 帐户中停用了 IPN。我尝试了很多方法,但 PayPal 仍会为每次付款发送 IPN。现在我收到 2 个 Notofications,一个通过 NofityUrl,第二个通过 WebhookEvent Listener。不知道这里出了什么问题。所以我不推荐使用 notifyUrl,而只是实现一个 webhookEvent 监听器。

关于php - 如何将通知 url 添加到 REST API paypal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35951259/

相关文章:

Paypal Express随机错误10413

paypal - 定期付款试用什么时候结束?

php - 是否可以使快速排序函数对数组进行降序排序?

php - 从 SQL SELECT JOIN (PHP) 构建关联数组

php - 如何将 PHP 变量的值传递给 Javascript 代码?

python - PayPal Adaptive Payments API 因多个接收者而失败

javascript - 如何在 CI Controller 上包含脚本库?

php - 在 PHP 中使用 curl 绕过验证码

ruby-on-rails - PayPal IPN 未连接取消定期计费

url - php 将用户名发送到 paypal 捐赠页面