Платежный сервис mpay24 - Интеграция с перенаправлением SOAP - Можно ли предварительно выбрать бренд оплаты? - PullRequest
0 голосов
/ 30 июня 2018

Можно ли предварительно выбрать тип и марку платежа в платежном сервисе MPAY24?

Это документация: https://docs.mpay24.com/docs/redirect-integration

Существуют разные подходы, но другие 2 требуют построения формы на стороне торговца. Я хотел бы продолжать использовать «Интеграцию перенаправления» с SOAP, но я не уверен, смогу ли я установить mdxi (интерфейс обмена торговыми данными) с предварительно выбранным способом оплаты и торговой маркой.

Когда я пытаюсь это сделать, я получаю сообщение об ошибке, что согласно xml-схеме «PaymentTypes» не принадлежит узлу «Order». Но в MDXI.xsd это дочерний элемент элемента «Порядок»: https://www.mpay24.com/schemas/MDXI/v3.0/MDXI.xsd

Вот как я это установил:

$mdxi = new \Mpay24\Mpay24Order();

$mdxi->Order->Tid   = $transactionId;
$mdxi->Order->Price = $amount;
$mdxi->Order->URL->Success      = $urlSuccess;
$mdxi->Order->URL->Error        = $urlError;
$mdxi->Order->URL->Confirmation = $urlConfirmation;
$mdxi->Order->PaymentTypes->Payment(0)->setType('CC');
$mdxi->Order->PaymentTypes->Payment(0)->setBrand('VISA');

Когда я удаляю эти 2 последние строки для настройки PaymentTypes, ошибка исчезает, и я перенаправляюсь в форму MPAY24 со всеми доступными способами оплаты, которых я хотел бы избежать в моей ситуации.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 04 июля 2018

Поскольку я получил объяснение от службы технической поддержки MPAY24, я должен ответить сам.

Я добавил правильную конфигурацию, но кажется, что это должно быть сделано в строгом порядке, как упорядочены элементы узла MDXI.xsd.

Итак, моя неправильная конфигурация должна быть сделана следующим образом (плюс некоторая другая конфигурация, которая в настоящее время комментируется как представление возможности. Все элементы можно найти в предоставленном MDXI.xsd, расположенном в библиотеке MPAY24):

$mdxi = new \Mpay24\Mpay24Order();
$mdxi->Order->Tid = $transactionId;
$mdxi->Order->TemplateSet->setLanguage( $language );
$mdxi->Order->PaymentTypes->setEnable('true');
$mdxi->Order->PaymentTypes->Payment(1)->setType( $paymentType );
$mdxi->Order->PaymentTypes->Payment(1)->setBrand( $paymentBrand );
//$mdxi->Order->ShoppingCart ...
$mdxi->Order->Price = $amount;
$mdxi->Order->Currency = $currency;
//$mdxi->Order->Customer ...
//$mdxi->Order->BillingAddr ...
//$mdxi->Order->ShippingAddr ...
$mdxi->Order->URL->Success = $urlSuccess;
$mdxi->Order->URL->Error = $urlError;
$mdxi->Order->URL->Confirmation = $urlConfirmation;
//$mdxi->Order->URL->Cancel ...

Также обратите внимание на добавленный метод setEnable ('true')!

Таким образом, «PaymentTypes» должен идти после «TemplateSet» и перед «ShoppingCart». Это считается только в том случае, если конфигурация существует. Пример комментируется «ShoppingCart», когда «PaymentTypes» будет предшествовать элементу «Price».

Я действительно надеюсь, что это кому-нибудь поможет.

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