首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColdFusion SessionToken需要帮助,Authorize.net需要AIM

ColdFusion SessionToken需要帮助,Authorize.net需要AIM
EN

Stack Overflow用户
提问于 2013-08-23 19:13:08
回答 1查看 384关注 0票数 1

我正试图解决Authorize.net出现的一个问题。SessionToken是在测试模式下通过测试帐户生成的。现在,每次通过测试帐户或实际帐户预览表单时,都会生成一个新的SessionToken

每次在预览模式下访问表单时,都会显示隐藏输入字段。通过使用从toBase64()x_tran_key组合而来的x_login字符串,我在表单上生成了一个隐藏的输入字段。产出如下:

代码语言:javascript
复制
<INPUT TYPE="HIDDEN" NAME="SessionToken" ID="SessionToken" VALUE="TXpOSFRUWXpXbk40VjNSeg==TlRsU2JqaHFOM2RLZFd0RU5VdzJadz09">

如上面所示,在forms隐藏的SessionToken输入字段中。

在为处理生成自己的SessionToken时,尝试处理https://test.authorize.net/gateway/transact.dll后显示的错误显示如下:

(46)您的会话已过期或不存在。您必须再次登录才能继续工作。

表单实际工作的唯一方法是在预览模式下从表单中抓取SessionToken代码。例如:转到Account -> Settings -> Payment -> Preview ->并从视图框架源查看和复制代码。看起来是这样的:

代码语言:javascript
复制
<INPUT TYPE="HIDDEN" NAME="SessionToken" ID="SessionToken" VALUE="jMsCez2DId$VvgF4s4Hbjbe$Uv6WnJh8cEKBD5HqTUEqlHoRBebKZ07bp4RZdpwOPnGabB3pbcWFppJCph7dg6HjQeroJvlay6mQm5ocjkZPq44uT4nqeg2zWhX13b7Blp$qN7ZDzQ5HF1abfukJTQAA,jMsCez2DId$VvgF4s4Hbjbe$Uv6WnJh8cEKBD5HqTUEqlHoRBebKZ07bp4RZdpwOPnGabB3pbcWFppJCph7dg6HjQeroJvlay6mQm5ocjkZPq44uT4nqeg2zWhX13b7Blp$qN7ZDzQ5HF1abfukJTQAA">

最后,如果我使用以下值:

jMsCez2DId$VvgF4s4Hbjbe$Uv6WnJh8cEKBD5HqTUEqlHoRBebKZ07bp4RZdpwOPnGabB3pbcWFppJCph7dg6HjQeroJvlay6mQm5ocjkZPq44uT4nqeg2zWhX13b7Blp$qN7ZDzQ5HF1abfukJTQAA

作为SessionToken

代码语言:javascript
复制
<cfset SessionToken = 'jMsCez2DId$VvgF4s4Hbjbe$Uv6WnJh8cEKBD5HqTUEqlHoRBebKZ07bp4RZdpwOPnGabB3pbcWFppJCph7dg6HjQeroJvlay6mQm5ocjkZPq44uT4nqeg2zWhX13b7Blp$qN7ZDzQ5HF1abfukJTQAA'>

处理它起作用的形式。但是,如果登录到Test帐户,它只对当前会话工作一次。

当然,所有的帮助都是感激的。这是我需要的代码的最后一部分,只是不知道如何使它工作。我需要获取SessionToken的响应,以填充表单上的SessionToken隐藏字段输入。

我不使用CFHTTP方法,因为表单在网站上,当支付表单加载时,SessionToken是必需的。意思是提交/发送..。提交表单上的按钮,然后处理付款并显示收据。

EN

回答 1

Stack Overflow用户

发布于 2013-12-26 23:14:11

如果您从Authorize.net下载Cold聚变示例代码,您将注意到您不需要SessionToken。见下文:

来源:http://developer.authorize.net/downloads/samplecode/

代码语言:javascript
复制
<cfhttp method="Post" url="https://test.authorize.net/gateway/transact.dll">
<!--- the API Login ID and Transaction Key must be replaced with valid values --->
<cfhttpparam type="Formfield" name="x_login" value="API_LOGIN_ID">
<cfhttpparam type="Formfield" name="x_tran_key" value="TRANSACTION_KEY">

<cfhttpparam type="Formfield" name="x_delim_data" value="TRUE">
<cfhttpparam type="Formfield" name="x_delim_char" value="|">
<cfhttpparam type="Formfield" name="x_relay_response" value="FALSE">

<cfhttpparam type="Formfield" name="x_type" value="AUTH_CAPTURE">
<cfhttpparam type="Formfield" name="x_method" value="CC">
<cfhttpparam type="Formfield" name="x_card_num" value="4111111111111111">
<cfhttpparam type="Formfield" name="x_exp_date" value="0115">

<cfhttpparam type="Formfield" name="x_amount" value="19.99">
<cfhttpparam type="Formfield" name="x_description" value="Sample Transaction">

<cfhttpparam type="Formfield" name="x_first_name" value="John">
<cfhttpparam type="Formfield" name="x_last_name" value="Doe">
<cfhttpparam type="Formfield" name="x_address" value="1234 Street">
<cfhttpparam type="Formfield" name="x_state" value="WA">
<cfhttpparam type="Formfield" name="x_zip" value="98004">
<!--- Additional fields can be added here as outlined in the AIM integration
guide at: http://developer.authorize.net --->   
<!--- The following fields show an example of how to include line item details, they are commented out by default.
<cfhttpparam type="Formfield" name="x_line_item" value="item1<|>golf balls<|><|>2<|>18.95<|>Y">
<cfhttpparam type="Formfield" name="x_line_item" value="item2<|>golf bag<|>Wilson golf carry bag, red<|>1<|>39.99<|>Y">
<cfhttpparam type="Formfield" name="x_line_item" value="item3<|>book<|>Golf for Dummies<|>1<|>21.99<|>Y">
--->
</cfhttp>

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18410238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档