0

Payum 1.0、Payum Bundle 1.0、および omnipay-skrill バンドルを使用した Omnipay ブリッジを使用してアプリに支払いを実装しようとしています。skrill はそのままではサポートされていません。

payum.yml

payum:
    security:
        token_storage:
            XXX\PaymentBundle\Entity\PaymentToken: { doctrine: orm }

    storages:
        XXX\PaymentBundle\Entity\Payment: { doctrine: orm }

    gateways:
        skrill:
            omnipay:
                type: Skrill
                options:
                  email: me@me.net
                  notifyUrl: /payment/skrill
                  testMode: true

これは私のコントローラの準備アクションです:

public function prepareAction()
{
    $paymentName = 'skrill';

    $storage = $this->get('payum')->getStorage('XXX\PaymentBundle\Entity\Payment');

    $payment = $storage->create();

    $payment->setNumber(uniqid($this->container->getParameter('shoppingCart')));
    $payment->setCurrencyCode('EUR');
    $payment->setTotalAmount($this->container->getParameter('price_of_xxx'));
    $payment->setDescription('desc');
    $payment->setClientId($this->getUser()->getId());
    $payment->setClientEmail($this->getUser()->getEmail());
    $payment->setLanguage('EN');

    $storage->update($payment);

    $captureToken = $this->get('payum.security.token_factory')->createCaptureToken(
        $paymentName,
        $payment,
        'xxx_buy_premium_done' // the route to redirect after capture
    );

    return $this->redirect($captureToken->getTargetUrl());
}

そのため、準備アクションに関連付けられたリンクにアクセスすると、Payum クレジット カード フォームが表示されます。しかし、応答としてすべてのデータを入力すると、言語パラメーターを指定する必要があるというエラーが表示されます。言語パラメーターを構成ファイルに入れ、支払い言語フィールドを設定しようとしたので、なぜそれが起こっているのかわかりません。非表示フィールドとしてフォームデータで送信する必要があると思います。

パラメータを使用してユーザーをhttps://pay.skrill.com/app/?sid=にリダイレクト し、Skrill サーバーから captureDoneAction への応答を取得することは可能ですか?

4

1 に答える 1

1

次のように言語を詳細に設定してみてください。

$payment->setDetails(array(
        'language' => 'EN',
));
于 2015-11-25T15:44:21.390 に答える