-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
【WIP】3DS2.0対応 #51
base: master
Are you sure you want to change the base?
【WIP】3DS2.0対応 #51
Conversation
# Transform the redirect_url | ||
# "ACS=2&RedirectUrl=https://manage.tds2gw.gmopg.jp/api/v2/brw/callback?transId=6e48e31f-2940-48e1-a702- ebba2f3373ee&t=dccc8a7ed85372c9accff576bff59b3a" => { "ACS" => "2", RedirectUrl => "https://manage.tds2gw.gmopg.jp/api/v2/brw/callback?transId=6e48e31f-2940-48e1-a702- ebba2f3373ee&t=dccc8a7ed85372c9accff576bff59b3a" } | ||
if response['RedirectUrl'].present? && response['t'].present? && response.keys.index('RedirectUrl') + 1 == response.keys.index('t') | ||
response['RedirectUrl'] = response['RedirectUrl'] + '&t=' + response['t'] | ||
response.delete('t') | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jiikko
3DS2.0の対応をさせていただいております。
specはToDoになりますが、実装方針が問題ないかを確認したいです。
レスポンスの中に &
を含む値があり、そのまま使用すると &t
が別のkeyと認識されてしまう問題がありましたので、上記のように手動でパースする実装を入れています。
上記の方法以外だと、idPass ではなく json でリクエストしなければならなくなりそうなのでもう少し大きな改修が必要になりそうです。
他のparse方法でも無理でした。
pry(main)> Rack::Utils.parse_nested_query("ACS=2&RedirectUrl=https://manage.tds2gw.gmopg.jp/api/v2/brw/callback?transId=6e48e31f-2940-48e1-a702-ebba2f3373ee&t=dccc8a7ed85372c9accff576bff59b3a")
=> {"ACS"=>"2", "RedirectUrl"=>"https://manage.tds2gw.gmopg.jp/api/v2/brw/callback?transId=6e48e31f-2940-48e1-a702-ebba2f3373ee", "t"=>"dccc8a7ed85372c9accff576bff59b3a"}
ご確認よろしくお願いいたします。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
返信が遅くなって申し訳ないです。
レスポンスの中に &を含む値があり、そのまま使用すると &tが別のkeyと認識されてしまう問題がありましたので、上記のように手動でパースする実装を入れています。
私は3DS2.0を使ったことがないので微妙なところですが、
テストを気持ち厚く書いて、動いているのであれば手動パースで問題ないと思います。
ドキュメントは公開されていないっぽいので頑張って手に入れてみます。
@@ -112,7 +114,7 @@ module Const | |||
:register_disp_7 => "RegisterDisp7", | |||
:register_disp_8 => "RegisterDisp8", | |||
:reserve_no => "ReserveNo", | |||
:ret_url => "RetURL", | |||
:ret_url => "RetUrl", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
要求されるパラメータが RetURL
と RetUrl
の2種類混在してるようですね。
3Dセキュアの場合は後者でよさそうですが、他の決済手段の場合前者を要求されるケースがあるようです。
2025年3月末にECサイトでの3DSの利用が義務化されるようです。 |
本PRは引き続き開発中でしょうか? |
SSIA