Нужна помощь для ColdFusion SessionToken и AIM для Authorize.net

Я пытаюсь решить проблему, которая возникает с Authorize.net. SessionToken генерируется в тестовом режиме через тестовый аккаунт. Теперь новый SessionToken генерируется каждый раз при предварительном просмотре формы через тестовую учетную запись или реальную учетную запись.

Скрытое поле ввода отображается каждый раз, когда форма доступна в режиме предварительного просмотра. Я создал скрытое поле ввода в моей форме, используя toBase64() Строка в сочетании с x_login и x_tran_key, Выход такой:

<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. Это означает, что кнопка отправки / отправки... в форме отправлена, затем обрабатывает платеж и отображает квитанцию.

1 ответ

Если вы загрузите пример кода Coldfusion с Authorize.net, вы заметите, что вам не нужен 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>

Надеюсь это поможет.

Другие вопросы по тегам