Authorize.net 接受托管和客户资料
Posted
技术标签:
【中文标题】Authorize.net 接受托管和客户资料【英文标题】:Authorize.net Accept Hosted & Customer Profiles 【发布时间】:2018-02-08 05:52:34 【问题描述】:背景:
我正在创建我的第一个 Authorize.net Accept Hosted 解决方案。该计划是使用商家的自定义 php 购物车来收集送货、账单地址,然后出示托管表格来收取付款。许多客户将是没有在 PHP 购物车中生成客户资料的“来宾”客户。
我已经使用 CURL 成功创建了一个 XML 令牌请求,并使用返回令牌来请求支付表单并填充 iframe。
问题:
我们希望将输入购物车的账单/运输信息传递给 Auth.net,这样客户就无需重新输入信息。我能够找到的文档/示例需要使用 SDK 创建客户资料才能执行此操作。
有没有更简单的方法?
我的问题:
-
我们可以通过令牌请求中的运输/计费吗?
我们可以通过表单请求中的运输/计费吗?
关于如何在不创建单独的客户资料交易的情况下传递此帐单/运输信息的任何其他建议?
如果我们必须为每笔交易创建客户档案,我们是否可以在不整合整个 SDK 的情况下使用 XML/CURL 创建客户档案?
提前感谢您的帮助。
【问题讨论】:
【参考方案1】:是的,您可以将帐单和送货地址信息传递给令牌请求,然后将其预先填充为以下形式:
<getHostedPaymentPageRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>YOUR_LOGIN_ID</name>
<transactionKey>YOUR_TRANSACTION_KEY</transactionKey>
</merchantAuthentication>
<transactionRequest>
<transactionType>authCaptureTransaction</transactionType>
<amount>20.00</amount>
<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>
<shipTo>
<firstName>China</firstName>
<lastName>Bayles</lastName>
<company>Thyme for Tea</company>
<address>12 Main Street</address>
<city>Pecan Springs</city>
<state>TX</state>
<zip>44628</zip>
<country>USA</country>
</shipTo>
</transactionRequest>
<hostedPaymentSettings>
<setting>
<settingName>hostedPaymentBillingAddressOptions</settingName>
<settingValue>"show": true, "required":true</settingValue>
</setting>
<setting>
<settingName>hostedPaymentButtonOptions</settingName>
<settingValue>"text": "Pay"</settingValue>
</setting>
<setting>
<settingName>hostedPaymentReturnOptions</settingName>
<settingValue>"url":"https://www.mystore.com/good","urlText":"Continue","cancelUrl":"https://www.mystore.com/cancel","cancelUrlText":"Cancel"</settingValue>
</setting>
<setting>
<settingName>hostedPaymentShippingAddressOptions</settingName>
<settingValue>"show": true, "required":true</settingValue>
</setting>
</hostedPaymentSettings>
</getHostedPaymentPageRequest>
是的,您也可以使用 XML/CURL 创建客户资料,而无需整合整个 SDK。
【讨论】:
我发现这种方法的问题是,一旦在结帐表格中预先填写了地址,客户就可以更改地址。我根据收货地址计算销售税,如果在税后更改地址时会出现问题。似乎没有办法在不使其在结帐表单中可供编辑的情况下传递地址。见this post。以上是关于Authorize.net 接受托管和客户资料的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.NET 中接受信用卡的最佳方式是啥? (在 ASP.NET 和 Authorize.NET 之间)
E00114 在 Authorize.net 中使用接受 JS 创建带有付款随机数的订阅时,OTS 令牌无效