Yii2 ActiveForm Полосовой токен - PullRequest
0 голосов
/ 27 февраля 2020

В Yii2 мы используем \ Stripe \ Charge :: create, следуя примеру документации сайта:

https://stripe.com/docs/payments/accept-a-payment-charges

Все работает отлично, пока мы используем прямая HTML в представлениях, но когда мы встраиваем элемент карты в ActiveForm, полоса. js возвращает:

XMLHttpRequest не может загрузить https://api.stripe.com/v1/tokens из-за для контроля доступа.

Мы хотели бы использовать ActiveForm для упрощения проверки и обработки других полей в форме. Любая помощь?

Лучший, Джо

Ответы [ 2 ]

0 голосов
/ 14 марта 2020

Итак, для любого, кто приземлится здесь, единственный способ заставить это работать - это удалить леса ActiveForm. Реальный облом, потому что мне пришлось проверять поля ввода не-Stripe с Javascript, что намного больше работы.

Я призываю всех опубликовать рабочий код в Yii, используя ActiveForm, который будет возвращать токен. Я не думаю, что это может быть сделано ... но я хотел бы ошибаться.

Лучше, Джо

0 голосов
/ 28 февраля 2020

Ошибка связана с CORS, см. CORS . Используйте соответствующий Access-Control, как описано там.

Вы можете использовать встроенное поведение Yii yii \ filters \ Cors в вашем контроллере.

Попробуйте сначала без каких-либо ограничений:

public function behaviors()
{
    return [
        'corsFilter' => [
            'class' => \yii\filters\Cors::className(),
        ],
    ];
}

Если это работает, вы можете ограничить доступ, параметризовав поведение, что-то вроде этого:

public function behaviors()
{
    return [
        'corsFilter' => [
            'class' => \yii\filters\Cors::className(),
            'cors' => [
                'Origin' => [https://api.stripe.com'],
                'Access-Control-Request-Method' => ['POST', 'PUT'],
            ],

        ],
    ];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...