Magento 2-未保存带有订单的信用卡详细信息

时间:2018-12-30 05:50:57

标签: api authorize.net magento2.2

在这里使用最新的Magento 2.3.0,其中有一个自定义模块,可通过API调用以编程方式创建订单。

一切正常,到目前为止,我仅设置了payment method(用于测试/开发人员),没有添加任何信用卡详细信息。

现在,我正在模拟通过Authorize.net进行的信用卡付款。使用正确的沙箱帐户设置配置的Mage 2管理员,并在自定义模块的订单中添加了信用卡详细信息,但是该交易未显示在我的Auth.net沙箱帐户中-仅适用于Authorization,不是用于捕获/充电。

仔细检查后,我认为抄送细节未添加到订单中(仅添加到报价中),因此提交订单时未授权交易...(这是我的假设)

这是我用于将cc详细信息添加到报价中的代码:

$quote->getPayment()->importData( 
    [
        'method' => "authorizenet_directpost",
        'cc_type' => $orderData['cc_data']['cc_type'],
        'cc_owner' => $orderData['cc_data']['cc_holder'],
        'cc_last_4' => substr($orderData['cc_data']['cc_num'], -4),
        'cc_number' => $orderData['cc_data']['cc_num'],
        'cc_cid' => $orderData['cc_data']['cc_ccv'],
        'cc_exp_month' => $orderData['cc_data']['cc_exp_month'],
        'cc_exp_year' => $orderData['cc_data']['cc_exp_year']
    ]
);

第一个问题:

(1)这些是cc详细信息的正确字段名称吗? (2)是否需要所有这些字段(例如cc_type)?

然后将报价转换为订单:

$quote->collectTotals()->save();
$order = $this->quoteManagement->submit($quote);
$this->orderSender->send($order);

同样,创建订单时不会出现任何错误,并且在管理员订单详细信息视图中,我可以看到付款信息为Credit Card Direct Post (Authorize.net),但根本没有抄送详细信息。

quote_payment数据库表具有抄送数据。

最后的问题:

(3)为什么抄送详细信息未正确添加到订单中,并且授权未完成? (4)是否需要将cc详细信息添加到订单对象而不是报价对象?

注意:当我尝试向这些测试订单开具发票时,它失败并带有Gateway error: Credit card number is required.,因此很明显订单中的抄送详细信息丢失了...

谢谢!

0 个答案:

没有答案