paypal - 我的 paypal 流程接收 webhook 通知有什么问题?

标签 paypal

所以这就是我到目前为止所做的,但没有用,我将不胜感激任何帮助:

我的目标是回发发生在我的 paypal 沙盒帐户中的任何 webhook 事件。

所以我有 2 个帐户, 一个属于收款人的,称之为“促进者”, 一个属于“买家”的,

现在在我的帐户中,有一个 Sandbox webhooks 配置,所以我输入了以下内容: https://csdieuqkzo.localtunnel.me

不用说,这来自 localtunnel.me .

所以在我的项目中,我使用 API 进行了简单的销售...这是完整的创建销售过程:

$payer = new Payer();
 $payer->setPayment_method('paypal');

 //dd($payer);
 $item = new Item();

 $item->setQuantity('1');
 $item->setName('benny');
 $item->setPrice('7.41');
 $item->setCurrency('USD');
 $item->setSku('blah');
 // //var_dump($item);

 $items = new ItemList();
 $items->addItem($item);
 //var_dump($items);

$amountDetails = new Details();
$amountDetails->setSubtotal('7.41');
$amountDetails->setTax('0.03');
$amountDetails->setShipping('0.03');

$amount = new Amount();
$amount->setCurrency('USD');
$amount->setTotal('7.47');
$amount->setDetails($amountDetails);

$transaction = new Transaction();
$transaction->setAmount($amount);
$transaction->setDescription('This is the payment transaction description.');
$transaction->setItemList($items);

// echo '<pre>';
// print_r($transaction);


$RedirectUrls = new RedirectUrls();
$RedirectUrls ->setReturnUrl('https://csdieuqkzo.localtunnel.me/#/pricing');
$RedirectUrls ->setCancelUrl('https://csdieuqkzo.localtunnel.me/#/');

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

// echo '<pre>';
// print_r($payment);
// dd();
$response = $payment->create($this->apiContext)->toarray();

Session::put('pay_id',$response['id']);

return Response::json($response);

在此之后有一个重定向到 paypal,批准,当它回到我的网站时,它执行以下内容:

  $payerId =  Input::get('payerId');

$payment = Payment::get(Session::get('pay_id'), $this->apiContext);

//return $payerId;

 $paymentExecution = new PaymentExecution();
 $paymentExecution->setPayer_id($payerId);

 $approval = $payment->execute($paymentExecution, $this->apiContext)->toarray();

 return Response::json($approval);

然后一个对象进来说这个交易的状态被批准, super ,但是我没有看到我之前定义的 webhook url 的任何帖子......现在我如何测试它?

我为我的 root 的 post 方法写了一个简单的脚本(在 laravel 中):

Route::post('/',function(){
    $myfile = fopen("bennyfile.txt", "a") or die("Unable to open file!");
     $txt = "\nouterequested";
     fwrite($myfile, $txt);
     fclose($myfile);
});

意味着每当一个帖子请求到达以下网址(在我的例子中,一个帖子到根目录:https://csdieuqkzo.localtunnel.me

我只想添加一行,仅此而已...但它不会更新任何内容!... 例如,如果我从 postman 那里向同一个地方发出邮寄请求,一切都很好,但是当销售被批准或任何其他行动时,什么也没有发生。

为什么?

最佳答案

这是一份帮助您了解 webhooks 工作原理的 paypal 文档。

https://developer.paypal.com/docs/integration/direct/rest-webhooks-overview/

webhooks 是 http 回调机制,理想情况下,您需要一个有效的 url 作为您的 webhooks 端点来测试 PayPal 发布的 webhooks 通知消息。如果您使用 paypal 钱包进行销售,您应该会在端点收到 JSON 格式的 PayPal webhooks 通知消息。 webhooks 还不支持直接信用卡案例。

如果您想在本地测试您的监听器脚本,您可以使用 postman 工具将示例消息发布到您的本地 url 并进行测试。

关于paypal - 我的 paypal 流程接收 webhook 通知有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26615542/

相关文章:

paypal - 如何以目标货币接收付款

paypal - 为什么使用 Paypal 付款后,我的商店页面显示为空白?

paypal - 获取我的 PayPal 客户的电子邮件

php - 如何验证 PayPal 返回数据?

c# - Paypal Express Checkout - 将“继续”按钮更改为“付款”

php - 在 Paypal Vault 中使用存储卡时返回内部服务错误

paypal - 如何获取 PayPal 自适应支付授权表的移动浏览器 View

PayPal IPN 将您自己的数据添加到 IPN 消息中

paypal - 如何修改定期 PayPal 付款

javascript - 如果输入字段不是 40 个字符,则隐藏 PayPal 付款表单的提交按钮