【问题标题】:Magento 2: How to change Payment Action Method on the fly in Paypal ExpressMagento 2:如何在 Paypal Express 中即时更改付款方式
【发布时间】:2017-02-08 15:59:36
【问题描述】:

我已经创建了 Paypal/Developer/Sandbox 帐户。已获得 API 凭据。

已下载 PHP SDK http://paypal.github.io/PayPal-PHP-SDK/

参考:https://developer.paypal.com/docs/api/

https://devtools-paypal.com/guide/expresscheckout/php?interactive=ON&env=sandbox

我已经使用我的 PHP 脚本通过 Authorize 方法完成了沙盒一交易。

我必须达到的目标。 我需要获得授权付款,将“授权”付款转换为“捕获/销售”方法并通知客户和管理员。

如何获取授权ID?

通过参考上述文档,我需要使用 3 个 Web 服务

  • 获取授权付款的详细信息
  • 获取授权付款
  • 获取已捕获付款的详细信息

已经有“授权”支付的交易ID。

请提供要遵循的步骤,如果已有示例,请分享

需要将此功能集成到 Magento 2 中

[更新]

我在 PayPal-PHP-SDK-master\sample\bootstrap.php 文件中更改了我在 PHP SDK 中的 API 沙盒凭据。

来自sample/payments/AuthorizePayment.php,我将获得 ID 为 PAY-0TV39791XXX02404VK7XD32I 的授权付款,并且工作正常。

当我输入我的Transaction Id 时,它给出了

{"name":"INVALID_RESOURCE_ID","message":"请求的资源 ID 不是 找到。","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#INVALID_RESOURCE_ID","debug_id":"1f2b08ce88633"}

我的沙盒交易 ID 是 3AA32794KF48247AA。那么问题是如何将您的交易 ID 转换为付款 ID?

https://magento.stackexchange.com/questions/138579/magento-2-change-paypal-action-method-on-the-fly

以下是Paypal的回复

交易id可以在REST API执行支付后生成, 经典 API [NVP/SOAP] DoEC API 或普通按钮支付完成。 反向搜索以找到付款 ID 永远不会起作用。

【问题讨论】:

  • 是否要将问题从 SO 站点切换到 magento.stackexchange.com 取决于 SO 版主?因为我想在 Magento 2 中得到最终结果。谢谢
  • 嗨 SO 社区,请指导我实现功能。谢谢
  • 嗨,我已经更新了我的答案,见下文。

标签: php payment-gateway magento2 paypal


【解决方案1】:

如果你有paymentId,你可以通过这种方式获取授权支付的详细信息:

$payment = Payment::get( $paymentId, $apiContext );

对于支付类的所有属性,看看这个 - Payment.php

要更改沙盒/API 凭据,请在您的项目中编辑 bootstrap.php

更新

您不需要使用 AuthorizePayment.php。相反,请执行以下操作:

  1. 创建付款并获取授权网址(您的网站端)。
  2. 打印授权网址(您的网站端)。
  3. 客户按照授权网址前往PayPal并授权付款(PayPal方)。
  4. PayPal 使用 paymentId(PayPal 端)将客户返回到您的网站。
  5. 获取 paymentId 并执行付款(您的网站端)。

【讨论】:

  • PaymentId = 交易 ID?我有交易 ID。如何根据 TransactionId 获取 PaymentId?
  • 当付款在 PayPal 端获得批准时,它会以 paymentId 作为获取参数返回到您的网站,并添加到您的返回 url。你能澄清一下你是如何获得 TransactionId 的吗?
  • 虽然我从 Paypal 将交易 ID 存储在我的数据库中。我还得重新创造整个东西吗?
  • 提供更多信息。您是否有之前付款的交易 ID?
  • 是的,如果您检查我已经提到的问题并从 Paypal 回复
猜你喜欢
  • 2018-08-17
  • 2018-04-03
  • 1970-01-01
  • 2018-10-29
  • 1970-01-01
  • 2012-03-01
  • 2017-10-13
  • 2016-12-07
  • 2017-10-23
相关资源
最近更新 更多