Authorize.net で発生する問題を解決しようとしています。はSessionToken
、テスト アカウントを使用してテスト モードで生成されます。SessionToken
これで、フォームがテスト アカウントまたは実際のアカウントを通じてプレビューされるたびに、新しいフォームが生成されます。
フォームがプレビュー モードでアクセスされるたびに、非表示の入力フィールドが表示されます。toBase64()
と を組み合わせた文字列を使用して、フォームに非表示の入力フィールドを生成しましx_login
たx_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 メソッドは使用していません。つまり、フォームの送信/送信... ボタンが送信され、支払いが処理され、領収書が表示されます。