ExpressCheckout を稼働させています。ここで、後で支払いを行う機会をユーザーに与えたいと考えています。たとえば、彼は私がデータを保存したままにしているペイパルプロセスを閉じます。
これはかなり簡単だと思いますが、なぜかペイパルにリダイレクトされなくなりました。これまでに行ったことは、新しいモデルを作成する代わりに、識別子を使用して既存のモデルを検索することだけです。この部分は機能するので、PaypalExpressPaymentDetails テーブルの特定のレコードを見つけます。しかし、私が言ったように、それはペイパルにリダイレクトされません. コードは次のとおりです。
$paymentName = 'demo_paypal';
$storage = $this->get('payum')->getStorageForClass(
'Demo\UserBundle\Entity\PaypalExpressPaymentDetails',
$paymentName
);
/** @var $paymentDetails PaymentDetails */
$paymentDetails = $storage->createModel();
$paymentDetails->setPaymentrequestCurrencycode(0, $currency);
$paymentDetails->setPaymentrequestAmt(0, $amount);
$storage->updateModel($paymentDetails);
$captureToken = $this->getTokenFactory()->createCaptureToken(
$paymentName,
$paymentDetails,
'payments_transaction_success'
);
$paymentDetails->setReturnurl($captureToken->getTargetUrl());
$paymentDetails->setCancelurl($captureToken->getTargetUrl());
$paymentDetails->setInvnum($paymentDetails->getId());
$storage->updateModel($paymentDetails);
実行されたコントローラー:
...
$identificator = new Identificator($entity->getId(), 'Demo\UserBundle\Entity\PaypalExpressPaymentDetails');
$captureToken = $this->payLateByPaypal($entity->getAmount(), "USD", $entity->getId(), $identificator);
return $this->redirect($captureToken->getTargetUrl());
何か案は?