Magento 2:如何在 Paypal Express 中即时更改付款方式

Posted

技术标签:

【中文标题】Magento 2:如何在 Paypal Express 中即时更改付款方式【英文标题】:Magento 2: How to change Payment Action Method on the fly in 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 社区,请指导我实现功能。谢谢 嗨,我已经更新了我的答案,见下文。 【参考方案1】:

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

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

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

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

更新

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

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

【讨论】:

PaymentId = 交易 ID?我有交易 ID。如何根据 TransactionId 获取 PaymentId? 当付款在 PayPal 端获得批准时,它会以 paymentId 作为获取参数返回到您的网站,并添加到您的返回 url。你能澄清一下你是如何获得 TransactionId 的吗? 虽然我从 Paypal 将交易 ID 存储在我的数据库中。我还得重新创造整个东西吗? 提供更多信息。您是否有之前付款的交易 ID? 是的,如果您检查我已经提到的问题并从 Paypal 回复

以上是关于Magento 2:如何在 Paypal Express 中即时更改付款方式的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 PayPal Pro 以直接从 Magento 2 的网站通过借记卡/信用卡付款?

如何在 Magento 中关闭 PayPal IPN?

Magento,如何更改 PayPal/Express/Review 页面

如何从magento 1.9中的paypal标准中删除checkout

Magento + Paypal - 订单状态停留在“付款审查”

Magento 2.2 Paypal 付款方式选项未显示在结帐中