私は 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 に送信するにはどうすればよいですか?