我正在使用 Symfony 并尝试使用PayumBundle将付款详细信息发送到 PayPal ,我配置了 PayumBundle 并且我让它工作直到被重定向到 paypal 但没有发送付款详细信息所以我在线搜索并在 SO 中遇到了这个问题和这是我看到的确切的空白信息屏幕。
查看答案指向的文档,我想出了以下代码,但是当我尝试访问调用以下prepare
操作的路由时。我遇到了一个错误
public function prepareAction(Request $request)
{
$paymentName = 'paypal';
$storage = $this->getPayum()->getStorage('ClickTeck\featuresBundle\Entity\Orders');
/** @var \ClickTeck\featuresBundle\Entity\Orders $paymentDetails */
$paymentDetails = $storage->create();
$paymentDetails['PAYMENTREQUEST_0_CURRENCYCODE'] = 'USD';
$paymentDetails['PAYMENTREQUEST_0_AMT'] = 1500;
$storage->update($paymentDetails);
$notifyToken = $this->getTokenFactory()->createNotifyToken($paymentName, $paymentDetails);
$captureToken = $this->getTokenFactory()->createCaptureToken(
$paymentName,
$paymentDetails,
'payment_done'
);
$paymentDetails['PAYMENTREQUEST_0_NOTIFYURL'] = $notifyToken->getTargetUrl();
$paymentDetails['INVNUM'] = $paymentDetails->getId();
$storage->update($paymentDetails);
return $this->redirect($captureToken->getTargetUrl());
}
Error: Cannot use object of type ClickTeck\featuresBundle\Entity\Orders as array
然后我尝试使用以下内容,但这会导致贝宝结束时出现另一个错误
$paymentDetails->PAYMENTREQUEST_0_CURRENCYCODE = 'USD';
$paymentDetails->PAYMENTREQUEST_0_AMT = 1500;
This transaction cannot be processed. The amount to be charged is zero
这就是我的Order
实体的样子
<?php
namespace ClickTeck\featuresBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Payum\Core\Model\Order as BaseOrder;
/**
* Orders
*/
class Orders extends BaseOrder
{
/**
* @var integer
*/
protected $id;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
}
有人可以帮我看看这是怎么回事吗?我试图让 PayumBundle 工作已经 2 天了。
我将非常感谢这方面的任何帮助。如何向 PayPal 发送付款详情?