mpay24 支付服务 - SOAP 重定向集成 - 是否可以预选支付品牌?

mpay24 payment service - SOAP redirect integration - Is it possible to preselect payment brand?

是否可以在MPAY24支付服务中预选支付类型和品牌?

这是文档:https://docs.mpay24.com/docs/redirect-integration

有不同的方法,但其他 2 种方法需要在商家端构建表单。我想继续使用 "Redirect Integration" 和 SOAP,但我不确定我是否可以使用预选的支付方式和品牌设置 mdxi(商家数据交换接口)。

当我尝试这样做时,我得到了根据 xml 架构 "PaymentTypes" 不属于 "Order" 节点的错误。但在 MDXI.xsd 中它是 "Order" 元素的子元素: 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');

当我删除 PaymentTypes 设置的最后两行时,错误消失了,我被重定向到 MPAY24 表单,其中包含我希望在我的情况下避免的所有可用付款方式。

如有任何帮助,我们将不胜感激。

在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" 之前。这仅在配置存在时才有效。当 "PaymentTypes" 将出现在 "Price" 元素之前时,示例被注释为 "ShoppingCart"。

我真的希望这会对某人有所帮助。