Authorize.net Accept.js 整合

Authorize.net Accept.js Integration

我正在使用 Accept.js 将一个简单的购买表格与 Authorize.net 集成,我想要一个 发票 #工作# 记录在信用卡交易中。表单提交处理程序如下所示:

function getSecureData() {

  /* Compile Data from Form */
  var secureData = {},
  authData = {},
  cardData = {};

  cardData.cardNumber = document.getElementById('CARDNUMBER_ID').value;
  cardData.month = document.getElementById('EXPIRY_MONTH_ID').value;
  cardData.year = document.getElementById('EXPIRY_YEAR_ID').value;
  cardData.zip  = document.getElementById('ZIP_CODE').value;
  cardData.cardCode  = document.getElementById('CARD_CODE').value;

  authData.clientKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
  authData.apiLoginID = 'XXXXXXXXX';

  /* My attempt to attach a job number to the secureData being submitted */
  secureData.userFields = {
    job_number: document.getElementById('JOB_NUMBER').value
  };

  secureData.cardData = cardData;
  secureData.authData = authData;

  /* Dispatch Data to Accept.js */
  Accept.dispatchData(secureData, 'responseHandler');

}

我试图从 documentation 中的 createTransactionRequest 的数据结构中进行推断。但是,该信息似乎并未出现在商家的收据中。

有人对此有任何建议或经验吗?

您需要在服务器端执行此操作。您的 responseHandler 应该将 dataDescriptor 和 dataValue 发送到您的服务器端实现。我建议与他们一起发送发票编号,或通过服务器收集发票,并使用特定于平台的 API 来设置发票编号。 PHP 看起来像这样:

$order = new AnetAPI\OrderType();
$order->setInvoiceNumber($invoice_number);

您提供的文档中的 link 适用于普通 API,并不真正适用于 accept.js。关于 accept.js 的最佳信息来源似乎是 sample implementation on github。它也是 Apple Pay 的一个实现,可能会造成混淆。