Payum 0.12 + Paypal Express Checkout を使用していますが、アクションを完了すると次のエラーが表示されます。
行の DetailsController.php のクラス「ArrayObject」でメソッド「getClientId」を呼び出そうとしました...
コントローラーコードは次のとおりです。
<?php
namespace Custom\CustomBundle\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Payum\Core\Registry\RegistryInterface;
use Payum\Core\Security\HttpRequestVerifierInterface;
use Payum\Core\Exception\RequestNotSupportedException;
use Payum\Core\Model\OrderInterface;
use Payum\Core\Request\GetHumanStatus;
use Payum\Core\Request\Sync;
class DetailsController extends Controller
{
public function completeAction(Request $request) {
$token = $this->get('payum.security.http_request_verifier')->verify($request);
$payment = $this->get('payum')->getPayment($token->getPaymentName());
try {
$payment->execute(new Sync($token));
} catch (RequestNotSupportedException $e) {}
$payment->execute($status = new GetHumanStatus($token));
/** @var OrderInterface $order */
$order = $status->getModel();
return $this->render('CustomBundle:Default:complete.html.twig', array(
'status' => $status->getValue(),
'order' => htmlspecialchars(json_encode(
array(
'client' => array(
'id' => $order->getClientId(), //<--- Error here
'email' => $order->getClientEmail(),
),
'number' => $order->getNumber(),
'description' => $order->getCurrencyCode(),
'total_amount' => $order->getTotalAmount(),
'currency_code' => $order->getCurrencyCode(),
'currency_digits_after_decimal_point' => $order->getCurrencyDigitsAfterDecimalPoint(),
'details' => $order->getDetails(),
),
JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE
)),
'paymentTitle' => ucwords(str_replace(array('_', '-'), ' ', $token->getPaymentName()))
));
}
}
Paypal Exress Checkout なしで「オフライン」支払いオプションを使用しても、このエラーが発生します。私は多分何かを逃していますか?