Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento 2:如何在Paypal Express中动态更改付款操作方法_Php_Payment Gateway_Magento2_Paypal - Fatal编程技术网

Php Magento 2:如何在Paypal Express中动态更改付款操作方法

Php Magento 2:如何在Paypal Express中动态更改付款操作方法,php,payment-gateway,magento2,paypal,Php,Payment Gateway,Magento2,Paypal,我已经创建了Paypal/Developer/Sandbox帐户。已获得API凭据 下载的PHP SDK 提及: 我已经使用我的PHP脚本使用Authorize方法完成了沙盒一个事务 我必须达到的目标我需要获得授权付款,将“授权”付款转换为“捕获/销售”方法,并通知客户和管理员。 如何获取授权Id 通过参考上述文档,我需要使用3个Web服务 获取授权付款的详细信息 获取授权付款 获取捕获付款的详细信息 已具有“授权”付款的交易ID 请提供遵循的步骤&如果已有任何示例,请分享 需要在Mage

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

下载的PHP SDK

提及:

我已经使用我的PHP脚本使用Authorize方法完成了沙盒一个事务

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

如何获取授权Id

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

  • 获取授权付款的详细信息
  • 获取授权付款
  • 获取捕获付款的详细信息
已具有“授权”付款的交易ID

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

需要在Magento 2中集成此功能

[更新]

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

sample/payments/AuthorizePayment.php
我将获得ID为PAY-0TV39791XXX02404VK7XD32I的授权付款&它工作正常

当我输入我的
事务Id
时,它给出

{“名称”:“无效的资源\u ID”,“消息”:“请求的资源ID无效” 找到“”,“信息链接”:“”,“调试id”:“1f2b08ce88633”}

我的沙盒事务Id是
3AA32794KF48247AA
。所以问题是如何将您的交易Id转换为付款Id

下面是贝宝的回复

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


如果您有paymentId,您可以通过以下方式获取授权付款的详细信息:

$payment = Payment::get( $paymentId, $apiContext );
对于支付类的所有属性,请查看以下内容:

要更改沙盒/API凭据,请在项目中编辑

更新

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

  • 创建付款并获取授权的url(您的网站端)
  • 打印url以进行授权(您的网站端)
  • 客户按照授权url进入PayPal并授权付款(PayPal端)
  • PayPal使用paymentId(PayPal端)将客户返回到您的网站
  • 抓取paymentId并执行付款(您的网站端)

  • PaymentId=交易ID?我有交易Id。如何在交易Id的基础上获取PaymentId?当PayPal端的付款获得批准时,它会返回到您的网站,并将PaymentId作为获取参数添加到您返回的url中。你能澄清一下你是如何获得TransactionId的吗?虽然我的数据库中存储了来自Paypal的交易id。我还是要重新创造整个东西?提供更多信息。你们有以前付款的交易id吗?是的,若你们查到我已经提到的问题并从Paypal回复,由SO版主决定他们是否想将问题从SO站点切换到SO站点?由于这最终的结果,我想在Magento 2中。谢谢社区,请指导我实现功能。谢谢,我已经更新了我的答案,见下文。