【问题标题】:Accept Hosted Recurring billing接受托管定期计费
【发布时间】:2020-04-27 12:29:21
【问题描述】:

getHostedPaymentPageRequest 仅提供两种类型的事务来使用以下 XML 为表单生成令牌。

两种交易类型:

  1. authCaptureTransaction
  2. authOnlyTransaction
<getHostedPaymentPageRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <merchantAuthentication>
    <name>5KP3u95bQpv</name>
    <transactionKey>346HZ32z3fP4hTG2</transactionKey>
  </merchantAuthentication>
  <transactionRequest>
    <transactionType>authCaptureTransaction</transactionType>
    <amount>20.00</amount>
    <profile>
      <customerProfileId>123456789</customerProfileId>
    </profile>
    <customer>
      <email>ellen@mail.com</email>
    </customer>
    <billTo>
        <firstName>Ellen</firstName>
        <lastName>Johnson</lastName>
        <company>Souveniropolis</company>
        <address>14 Main Street</address>
        <city>Pecan Springs</city>
        <state>TX</state>
        <zip>44628</zip>
        <country>USA</country>
    </billTo>
  </transactionRequest>
  <hostedPaymentSettings>
    <setting>
      <settingName>hostedPaymentReturnOptions</settingName>
      <settingValue>{"showReceipt": true, "url": "https://url-when-continue-button-clicked/receipt", "urlText": "Continue", "cancelUrl": "https://url-when-cancel-button-clicked.com/cancel", "cancelUrlText": "Cancel"}</settingValue>
    </setting>
    <setting>
      <settingName>hostedPaymentButtonOptions</settingName>
      <settingValue>{"text": "Pay"}</settingValue>
    </setting>
    <setting>
      <settingName>hostedPaymentStyleOptions</settingName>
      <settingValue>{"bgColor": "blue"}</settingValue>
    </setting>
    <setting>
      <settingName>hostedPaymentPaymentOptions</settingName>
      <settingValue>{"cardCodeRequired": false, "showCreditCard": true, "showBankAccount": true}</settingValue>
    </setting>
    <setting>
      <settingName>hostedPaymentSecurityOptions</settingName>
      <settingValue>{"captcha": false}</settingValue>
    </setting>
    <setting>
      <settingName>hostedPaymentShippingAddressOptions</settingName>
      <settingValue>{"show": false, "required": false}</settingValue>
    </setting>
    <setting>
      <settingName>hostedPaymentBillingAddressOptions</settingName>
      <settingValue>{"show": true, "required":false}</settingValue>
    </setting>
    <setting>
      <settingName>hostedPaymentCustomerOptions</settingName>
      <settingValue>{"showEmail": false, "requiredEmail": false, "addPaymentProfile": true}</settingValue>
    </setting>
    <setting>
      <settingName>hostedPaymentOrderOptions</settingName>
      <settingValue>{"show": true, "merchantName": "G and S Questions Inc."}</settingValue>
    </setting>
    <setting>
      <settingName>hostedPaymentIFrameCommunicatorUrl</settingName>
      <settingValue>{"url": "https://url-contianing-iframe"}</settingValue>
    </setting>
  </hostedPaymentSettings>
</getHostedPaymentPageRequest>

我应该如何修改 XML 以便获得定期计费表单?因为我没有在接受托管中找到任何实现示例来获取有效的表单令牌以进行定期计费。没有提到对接受托管文档进行定期计费。

另外,我使用重定向方法而不是 iframe 方法来显示不返回任何响应的表单。

【问题讨论】:

    标签: authorize.net authorize.net-arb


    【解决方案1】:

    没有一种通过托管表单创建订阅的表单。幸运的是,已经有人posted how to do this on their forum 了,我会在这里转发:

    如果您尝试使用接受托管表单来创建 订阅,您实际上不会使用托管支付页面, 描述了here

    正确的工作流程是使用 API 向客户发出请求 个人资料:createCustomerProfileRequest。您只需要他们的电子邮件 地址。

    从该调用中获取配置文件 ID 后,您请求 接受托管add profile form 的令牌。文档 这个表格和其他表格是here。我什至没有意识到这些形式 存在。即使您知道自己是什么,也很难在 Google 中找到它们 正在寻找。

    您需要客户资料 ID 来获取“添加付款”的令牌 个人资料”表格。

    你处理这个表单客户端的响应,因为你得到 您设置的 IFrameCommunicator 页面的响应(它适用于 付款表格或这些客户资料类型表格相同)。 Here's a sample.

    然后我调用服务器端代码以使用 api 创建订阅 - 我将客户资料 ID 传递给它,因为老实说,我不知道表单是否返回新创建的付款资料 ID。如果你有 客户资料 ID,您可以检索任何现有的付款资料。 因此,仅使用客户资料 ID,我拨打电话以获取 付款资料 ID - getCustomerProfileRequest。那个电话回来了 各种各样的东西,包括付款资料。我只是抓住 第一。现在有了客户资料 ID 和付款资料 id,我可以创建一个订阅 - ARBCreateSubscriptionRequest。 有一些示例可以帮助您形成订阅 正确。

    最后说明:如果您在沙盒中进行测试,则需要 在获取付款资料 ID 和 使用 api 获取订阅。沙盒没有 实时处理这些事务的资源。弄清楚这一点 花了我几个小时。您可以通读这篇文章以确认,并且 虽然年代久远,但依然如此:

    https://community.developer.authorize.net/t5/Integration-and-Testing/E00040-when-Creating-Subscription-from-Customer-Profile/m-p/59597#M34176

    【讨论】:

    • 感谢@John 的评论,因为它帮助我找到了一个更好的方向来以模态方式实施 authorize.net 表单,并且重复计费也没有问题。我能够使用以下脚本“jstest.authorize.net/v3/AcceptUI.js”来实现这一点。开发说明位于以下 URL:developer.authorize.net/api/reference/features/…。如果有人想添加 authorize.net 来代替他自己的表单,只需输入这些信息。
    • 如果此答案解决了您的问题,请单击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
    猜你喜欢
    • 2013-03-24
    • 2018-04-27
    • 2016-12-27
    • 1970-01-01
    • 2012-01-25
    • 2014-05-17
    • 2018-02-08
    • 2015-03-14
    • 2017-07-21
    相关资源
    最近更新 更多