2013-08-23 2 views
1

Authorize.net에서 발생하는 문제를 해결하기 위해 노력하고 있습니다. SessionToken은 테스트 계정을 통해 테스트 모드에서 생성됩니다. 이제 새로운 SessionToken이 테스트 계정 또는 실제 계정을 통해 양식을 미리 볼 때마다 생성됩니다.ColdFusion SessionToken 및 AIM for Authorize.net에 대한 도움이 필요합니다.

미리보기 모드에서 양식에 액세스 할 때마다 숨겨진 입력 필드가 표시됩니다. 내 양식에 toBase64() 문자열을 x_loginx_tran_key에서 결합하여 숨겨진 입력 필드를 생성했습니다. 위에서 볼 수 있듯이 SessionToken에 대한 입력 필드를 숨겨진 형태의

<INPUT TYPE="HIDDEN" NAME="SessionToken" ID="SessionToken" VALUE="TXpOSFRUWXpXbk40VjNSeg==TlRsU2JqaHFOM2RLZFd0RU5VdzJadz09"> 

: 출력이됩니다.

자신의 SessionToken 처리를 들면, https://test.authorize.net/gateway/transact.dll을 처리하는 후 표시되는 오류가이 보여 내 생성 :

(46) 세션이 만료되었거나 존재하지 않습니다. 계속 작업하려면 에 다시 로그인해야합니다.

양식을 실제로 작동시키는 유일한 방법은 미리보기 모드에서 양식의 SessionToken 코드를 잡은 후입니다. 예 : 계정 -> 설정 -> 지불 양식 -> 미리보기 ->보기 프레임 원본에서 코드보기 및 복사로 이동하십시오. 그것은 다음과 같습니다

<cfset SessionToken = 'jMsCez2DId$VvgF4s4Hbjbe$Uv6WnJh8cEKBD5HqTUEqlHoRBebKZ07bp4RZdpwOPnGabB3pbcWFppJCph7dg6HjQeroJvlay6mQm5ocjkZPq44uT4nqeg2zWhX13b7Blp$qN7ZDzQ5HF1abfukJTQAA'> 
,369 다음 SessionToken 등으로

jMsCez2DId $ VvgF4s4Hbjbe $ Uv6WnJh8cEKBD5HqTUEqlHoRBebKZ07bp4RZdpwOPnGabB3pbcWFppJCph7dg6HjQeroJvlay6mQm5ocjkZPq44uT4nqeg2zWhX13b7Blp $ qN7ZDzQ5HF1abfukJTQAA

:

<INPUT TYPE="HIDDEN" NAME="SessionToken" ID="SessionToken" VALUE="jMsCez2DId$VvgF4s4Hbjbe$Uv6WnJh8cEKBD5HqTUEqlHoRBebKZ07bp4RZdpwOPnGabB3pbcWFppJCph7dg6HjQeroJvlay6mQm5ocjkZPq44uT4nqeg2zWhX13b7Blp$qN7ZDzQ5HF1abfukJTQAA,jMsCez2DId$VvgF4s4Hbjbe$Uv6WnJh8cEKBD5HqTUEqlHoRBebKZ07bp4RZdpwOPnGabB3pbcWFppJCph7dg6HjQeroJvlay6mQm5ocjkZPq44uT4nqeg2zWhX13b7Blp$qN7ZDzQ5HF1abfukJTQAA"> 

을 마지막으로, 나는 값을 사용하는 경우

을 입력하고 작동하는 양식을 처리하십시오. 테스트 계정에 로그인 한 경우 현재 세션에 대해서만 한 번만 작동합니다.

모든 도움을 받으실 수 있습니다. 이것은 내가 필요로하는 코드의 마지막 부분이며 어떻게 동작시키는 지 알 수 없다. 폼에 SessionToken 숨겨진 필드 입력을 채우기 위해 SessionToken에 대한 응답을 가져와야합니다.

양식이 웹 사이트에 있고 지불 서식이로드 될 때 CFTTP 방식을 사용하지 않습니다. SessionToken이 필요합니다. 즉, 양식의 제출/전송 ... 단추가 제출되면 지불을 처리하고 영수증을 표시합니다.

+0

개발자 문서에서 구현하려는 기능의 온라인 예제가 있습니까? 나는 CF 모양의 예제에서'SessionToken'에 대해서는 아무 것도 보지 못했습니다 : [developer.authorize.net] (http://developer.authorize.net/api/aim/). – Leigh

+0

맞습니다. 개발자 설명서에는 SessionToken이나 그 밖의 어디에서나 찾을 수있는 내용이 없습니다. SessionToken이 Authorize.net의 양식에 있기 때문에 이상하게 생겼습니다. 오류를 해결하기 위해 페이지 처리를 변경했습니다. 나는 SessionToken이 Authorize.net의 폼에있는 32 비트 문자열이기 때문에 32 비트 문자열의 SessionToken을 만들 수 있었다. x_login과 x_tran_key를 결합하여 Base64()로 변환했습니다. 페이지 프로세스를 한 페이지에서 두 페이지로 변경 한 후 transact.dll 파일은 별도의 페이지에서 CFHTTP로 처리되었습니다. 토큰이 필요하지 않습니다. –

+0

흥미 롭습니다. 분리 된 페이지가 왜 다른지를 확신 할 수 없습니다. 어쨌든 최종 코드를 답으로 게시하고 싶을 수도 있습니다. 같은 문제를 겪는 다음 사람을 도우십시오. – Leigh

답변

0

Authorize.net에서 Coldfusion 샘플 코드를 다운로드하면 SessionToken이 필요하지 않음을 알 수 있습니다. 아래를 참조

출처 :이 도움이 http://developer.authorize.net/downloads/samplecode/

<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> 

희망.

관련 문제