gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:52:30 26 4
gpt4 key购买 nike

我在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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com