1

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

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

有不同的方法,但其他 2 需要在商家方面建立一个表格。我想继续使用带有 SOAP 的“重定向集成”,但我不确定是否可以使用预选的付款方式和品牌设置 mdxi(商家数据交换接口)。

当我尝试根据 xml 模式“PaymentTypes”不属于“订单”节点时,我得到错误。但在 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');

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

任何帮助,将不胜感激。

4

1 回答 1

0

当我从 MPAY24 技术支持团队得到解释时,我现在必须自己回答。

我正在添加正确的配置,但似乎必须按照严格的顺序完成,例如 MDXI.xsd 节点元素是有序的。

所以,我的错误配置应该是这样完成的(加上一些其他配置,目前被评论为可能的演示。所有元素都可以在位于 MPAY24 库中提供的 MDXI.xsd 中找到):

$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”。

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

于 2018-07-04T15:08:37.390 回答