2014-10-16 27 views
0

我使用ColdFusion整合的Authorize.Net SIM API集成...Authorize.net - SIM - 如何在不暴露API登錄ID

在示例模板,表單公開APILogin和指紋有效地是違背API說明文件...

有沒有人有沒有建議如何做到這一點,而不暴露這些表單值?

<FORM method='post' action='#posturl#' > 
    <INPUT type='hidden' name='x_login' value='#loginID#' /> 
    <INPUT type='hidden' name='x_amount' value='#amount#' /> 
    <INPUT type='hidden' name='x_description' value='#description#' /> 
    <INPUT type='hidden' name='x_invoice_num' value='#invoice#' /> 
    <INPUT type='hidden' name='x_fp_sequence' value='#sequence#' /> 
    <INPUT type='hidden' name='x_fp_timestamp' value='#timestamp4#' /> 
    <INPUT type='hidden' name='x_fp_hash' value='#fingerprint#' /> 
    <INPUT type='hidden' name='x_test_request' value='#testMode#' /> 
    <INPUT type='hidden' name='x_show_form' value='PAYMENT_FORM' /> 
    <input type='submit' value='#label#' /> 
</FORM> 
+1

no no ..你是對的肯,不想公開你的數字,更不用說你的登錄ID了。將這些保存在服務器上(應用程序變量或數據庫表),但不要將它們放在隱藏字段中。 @cfqueryaparams解決方案更多的是你想要的 - 儘管你可能需要一些調試。 – 2014-10-17 14:19:32

+0

@MarkAKruger - 暫時忽略服務器端選項,爲什麼指紋需要保密?他們的文件說這只是各種領域的散列,並不會保持不變。我不確定API登錄。他們的文檔是相互衝突的,儘管他們區分了API登錄和用戶登錄。 – Leigh 2014-10-18 01:26:05

+0

@rhldr - 如果是這樣,你應該發表你的評論作爲答案。所以搜索檔案的人更容易看到它。 – Leigh 2014-10-18 15:58:50

回答

1
<cfhttp url="https://test.authorize.net/gateway/transact.dll" method="POST" result="fpResult"> 
    <cfhttpparam type="FORMFIELD" name="x_login" value="#loginID#" /> 
    <cfhttpparam type="FORMFIELD" name="x_amount" value="#amount#" /> 
    <cfhttpparam type="FORMFIELD" name='x_description' value='#description#' /> 
    <cfhttpparam type="FORMFIELD" name='x_invoice_num' value='#invoice#' /> 
    <cfhttpparam type="FORMFIELD" name='x_fp_sequence' value='#sequence#' /> 
    <cfhttpparam type="FORMFIELD" name='x_fp_timestamp' value='#timestamp#' /> 
    <cfhttpparam type="FORMFIELD" name='x_fp_hash' value='#fingerprint#' /> 
    <cfhttpparam type="FORMFIELD" name='x_test_request' value='#testMode#' /> 
    <cfhttpparam type="FORMFIELD" name='x_show_form' value='PAYMENT_FORM' /> 
    <input type="submit" default="submit" /> 
    ... 
</cfhttp> 

<cfdump var="#fpResult#"> 

CFDumping的結果,因爲我有,是理解結構一個偉大的工具。

0

OK,這似乎解決了我的問題...我有效利用隱藏

<cfif IsDefined("form.submit")> 

一旦提交單擊該領域,形式變量是一個短期可見的,我用JS提交表單變量Authorize.net ..

雖然它似乎解決我的問題,我注意到了變量是託管付款形式......這也是其規則相沖突上可見...

有什麼想法?

<cfif IsDefined("form.submit")> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 



    window.document.forms[0].submit(); 
    }); 
</script> 
</cfif> 
</HEAD> 

<BODY> 

<cfif NOT IsDefined("form.submit")> 
<cfset posturl="#CGI.SCRIPT_NAME#"> 
</cfif> 

<cfif IsDefined("form.submit")> 
<cfset posturl="https://test.authorize.net/gateway/transact.dll"> 
</cfif> 



<FORM method='post' action='#posturl#' > 
    <cfif IsDefined("form.submit")> 
      <INPUT type='hidden' name='x_login' value='#loginID#' /> 
      <INPUT type='hidden' name='x_fp_sequence' value='#sequence#' /> 
      <INPUT type='hidden' name='x_fp_timestamp' value='#timestamp#' /> 
      <INPUT type='hidden' name='x_fp_hash' value='#fingerprint#' /> 
      <INPUT type='hidden' name='x_test_request' value='#testMode#' /> 
      <INPUT type='hidden' name='x_method' value='CC' /> 
    </cfif> 
+0

肯 - 這真的不「解決」問題。正如你所說,信息仍然可見。更何況JavaScript可以很容易地禁用。當您使用客戶端代碼(例如html/javascript/etcetera)時,無法隱藏瀏覽器的值。根據定義,這些*必須*對於瀏覽器來說是可見的,用於解釋代碼。雖然聽起來好像他們的文檔包含矛盾的信息,但其中一些已經過時了。 (續) – Leigh 2014-10-18 15:49:03

+0

例如,「指紋」只是一個不同值的哈希值,並不會保持不變。所以我不確定爲什麼它應該被視爲祕密。另外,他們提到API登錄和用戶登錄有所不同。不幸的是,它聽起來不像你可以使用服務器端POST選項@cfqueryparam建議,因爲它是一個託管的支付形式。就個人而言,我會建議直接找到源代碼。詢問Authorize.net關於這一點。 – Leigh 2014-10-18 15:54:37

+0

Leigh - 謝謝您的回覆..我理解你的觀點並且同意你的觀點。我已經和Authorize.Net談過了,他們沒有什麼幫助,甚至發現它很難向他們解釋問題......實際上,他們只是簡單地說:「肯尼,我們是不是開發者,你是......「基本上,是一個困難和令人沮喪的討論.. – 2014-10-18 17:27:37