1

Authorize.net で発生する問題を解決しようとしています。はSessionToken、テスト アカウントを使用してテスト モードで生成されます。SessionTokenこれで、フォームがテスト アカウントまたは実際のアカウントを通じてプレビューされるたびに、新しいフォームが生成されます。

フォームがプレビュー モードでアクセスされるたびに、非表示の入力フィールドが表示されます。toBase64()と を組み合わせた文字列を使用して、フォームに非表示の入力フィールドを生成しましx_loginx_tran_key。出力は次のとおりです。

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

上記のように、フォームの非表示の入力フィールドでSessionToken

処理のために独自のものを生成する場合、 httpsSessionToken ://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'>

機能するフォームを処理します。ただし、テスト アカウントにサインインしている場合、現在のセッションで 1 回しか機能しません。

もちろん、すべての助けに感謝します。これは私が必要とするコードの最後の部分であり、それを機能させる方法がわかりません。フォームの SessionToken 非表示フィールド入力にデータを入力するには、SessionToken の応答をフェッチする必要があります。

フォームが Web サイトにあり、支払いフォームが読み込まれるときに SessionToken が必要になるため、CFHTTP メソッドは使用していません。つまり、フォームの送信/送信... ボタンが送信され、支払いが処理され、領収書が表示されます。

4

1 に答える 1

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>

お役に立てれば。

于 2013-12-26T23:14:11.407 に答える