【问题标题】:Authorize.net Accept.js IntegrationAuthorize.net Accept.js 集成
【发布时间】:2017-07-20 16:27:00
【问题描述】:

我正在使用 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');

}

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

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

【问题讨论】:

    标签: javascript payment-gateway authorize.net accept.js


    【解决方案1】:

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

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

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

    【讨论】:

    • @rob-gordon 我想知道,您的 responseHandler 是否可以使用 userFields?
    • 当您从服务器提交 nonce 到 Authorize.Net 以处理交易时,应该包括用户字段。 Accept.js 用于避免敏感卡数据通过您的服务器。
    • @rhldr 你是对的。 userFields 类似于 invoiceNumber,用于普通 API。我正在尝试找到一种将数据发送到我的 accept.js 处理程序的方法。你知道方法吗?
    猜你喜欢
    • 2018-05-19
    • 2021-01-25
    • 1970-01-01
    • 2011-01-12
    • 2011-12-27
    • 2017-09-24
    • 2012-08-02
    • 2013-05-05
    相关资源
    最近更新 更多