我使用自定义构建的ColdFusion组件(CFC)多年来一直在使用Authorize.net AIM集成方法。我想尝试使用新API并更新我的CFC以使用它。
以前,所有交易数据都作为单独的字段传递,您将发布到Authorize.net 例如:x_login,x_tran_key等......看起来像这样:
<cfhttpparam name="x_login" type="formfield" value="xxx" />
<cfhttpparam name="x_tran_key" type="formfield" value="xxx" />
使用新API,我从开发人员文档中注意到的最大变化是所有事务数据都封装为单个XML(或JSON)变量,然后发布。但是,我没有在文档中看到新表单字段名称应包含XML(或JSON)数据的内容!
以下是流程的工作原理:
<!--- Create my XML request data:--->
<cfxml variable="xmlRequest">
<createTransactionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>xxx</name>
<transactionKey>xxx</transactionKey>
</merchantAuthentication>
<refId>xxx</refId>
<transactionRequest>
<transaction request data goes here>
</transactionRequest>
</createTransactionRequest>
</cfxml>
然后我使用CFHTTP将数据发布到Authorize.net:
<cfhttp url="https://secure2.authorize.net/gateway/transact.dll" method="post">
<cfhttpparam type="header" name="Content-type" value="application/x-www-form-urlencoded" />
<cfhttpparam name="????" type="formfield" value="#ToString(requestXML)#" />
</cfhttp>
正如您所看到的,我不知道如何为XML数据提供httpparam名称。
非常感谢任何帮助。
答案 0 :(得分:3)
如果您提交XML,则可以使用:
<cfhttp url="https://secure2.authorize.net/gateway/transact.dll" method="post">
<cfhttpparam type="xml" value="#ToString(requestXML)#">
</cfhttp>
基本上是:
<cfhttp url="https://secure2.authorize.net/gateway/transact.dll" method="post">
<cfhttpparam type="header" name="Content-Type" value="text/html">
<cfhttpparam type="body" value="#ToString(requestXML)#">
</cfhttp>
如果您提交JSON,请转到:
<cfhttp url="https://secure2.authorize.net/gateway/transact.dll" method="post">
<cfhttpparam type="header" name="Content-Type" value="application/json">
<cfhttpparam type="body" value="#serializeJSON(requestJSON)#">
</cfhttp>