我想解決與Authorize.net發生的問題。 SessionToken
在測試模式下通過測試帳戶生成。現在,每次通過測試帳戶或實際帳戶預覽表單時都會生成一個新的SessionToken
。需要幫助爲ColdFusion SessionToken和AIM的Authorize.net
每次以預覽模式訪問表單時,都會顯示隱藏的輸入字段。我使用從x_login
和x_tran_key
組合的toBase64()
字符串在我的表單上生成了一個隱藏的輸入字段。輸出是這樣的:
<INPUT TYPE="HIDDEN" NAME="SessionToken" ID="SessionToken" VALUE="TXpOSFRUWXpXbk40VjNSeg==TlRsU2JqaHFOM2RLZFd0RU5VdzJadz09">
在隱藏輸入字段
SessionToken
,你可以看到上面的表格
。
當生成自己SessionToken
進行處理,嘗試處理https://test.authorize.net/gateway/transact.dll後顯示的錯誤表明這一點:
(46)您的會話已過期或不存在。您必須再次登錄 才能繼續工作。
表單實際工作的唯一方法是在預覽模式下從窗體中獲取SessionToken
代碼之後。例如:轉到賬戶 - >設置 - >付款方式 - >預覽 - >並查看並複製來自視圖幀源的代碼。它看起來像這樣:
<INPUT TYPE="HIDDEN" NAME="SessionToken" ID="SessionToken" VALUE="jMsCez2DId$VvgF4s4Hbjbe$Uv6WnJh8cEKBD5HqTUEqlHoRBebKZ07bp4RZdpwOPnGabB3pbcWFppJCph7dg6HjQeroJvlay6mQm5ocjkZPq44uT4nqeg2zWhX13b7Blp$qN7ZDzQ5HF1abfukJTQAA,jMsCez2DId$VvgF4s4Hbjbe$Uv6WnJh8cEKBD5HqTUEqlHoRBebKZ07bp4RZdpwOPnGabB3pbcWFppJCph7dg6HjQeroJvlay6mQm5ocjkZPq44uT4nqeg2zWhX13b7Blp$qN7ZDzQ5HF1abfukJTQAA">
最後,如果我使用的值:
jMsCez2DId $ VvgF4s4Hbjbe $ Uv6WnJh8cEKBD5HqTUEqlHoRBebKZ07bp4RZdpwOPnGabB3pbcWFppJCph7dg6HjQeroJvlay6mQm5ocjkZPq44uT4nqeg2zWhX13b7Blp $ qN7ZDzQ5HF1abfukJTQAA
爲SessionToken
爲:
<cfset SessionToken = 'jMsCez2DId$VvgF4s4Hbjbe$Uv6WnJh8cEKBD5HqTUEqlHoRBebKZ07bp4RZdpwOPnGabB3pbcWFppJCph7dg6HjQeroJvlay6mQm5ocjkZPq44uT4nqeg2zWhX13b7Blp$qN7ZDzQ5HF1abfukJTQAA'>
並處理它的工作形式。但是,如果登錄到測試帳戶,它只能在當前會話中使用一次。
當然,所有的幫助表示讚賞。這是我需要的代碼的最後一部分,只是無法弄清楚如何使它工作。我需要獲取SessionToken的響應來填充窗體上的SessionToken隱藏字段輸入。
我沒有使用CFHTTP方法,因爲窗體在網站上,並且在付款表單加載SessionToken時需要。這意味着表單上的提交/發送...按鈕被提交,然後處理付款並顯示收據。
在開發人員文檔中是否有您想要實現的功能的在線示例?我快速瀏覽了一下,在這裏的CF例子中沒有看到有關'SessionToken'的任何信息:[開發者。authorize.net](http://developer.authorize.net/api/aim/)。 – Leigh
你是對的,開發者文檔中沒有關於SessionToken或者我可以找到的任何網絡上的任何東西。由於SessionToken位於Authorize.net的窗體上,有點奇怪。爲了解決錯誤,我在頁面處理方面進行了改變。我設法創建了一個32位字符串的SessionToken,因爲SessionToken是Authorize.net表單上的32位字符串。我組合了x_login和x_tran_key並將其轉換爲Base64()。將頁面進程從一頁更改爲兩頁後,transact.dll文件在單獨的頁面上使用CFHTTP進行處理。沒有令牌需要。 –
有趣。不知道爲什麼單獨的網頁有所作爲。無論如何,你可能想發佈最終的代碼作爲答案。幫助遇到同樣問題的下一個人。 – Leigh