CGI-BBS > SO−HO > ショッピングバスケット > NTTリヴァイへのカード決済認証情報


カレッヂ
カレッヂ


質問者 たっつあん  投稿日 11/16(金) 12:31:04
Version5.23を使用し、クレジット決済のみNTTリヴァイへ飛ばして与信をかけたいと
考えています。この時にリヴァイの注文情報CGIへリンク設定するのですが、この中で
認証情報の30桁の数字を入れなければなりません。この認証情報のプログラムの作り方
をお教えいただきたいのですが。また参考になるページ等がありましたら教えてください。
宜しくお願いします。

*************************************************************************
リヴァイ側注文情報登録CGIへのリンク設定
https://[注文フォームCGI]?[ストアID]:[認証情報]:[マーチャント側オーダーID]

上記の[認証情報]の部分です。以下のような設定方法です。

・認証情報作成について

認証情報は{認証情報1(10桁)}{認証情報2(10桁)}{認証情報3(10桁)}」
の構成になっています。

1999年08月19日02時35分でストアIDを「400307」とした場合
 係数1:5
 係数2:10
 係数3:100

{認証情報1(10桁)}=
         [{係数3}]*[[{係数1}*{現在時刻(yyyy)}]+[{係数2}*{店舗ID}]]

         (100)*((5*1999)+(10*400307))=100*(9995+4003070)=401306500
         →0401306500(左0詰めにて10桁にする)

{認証情報2(10桁)}=
         [{係数3}]*[[{係数1}*{現在時刻(mmdd)}]+[{係数2}*{店舗ID}]]

         (100)*((5*0819)+(10*400307))=100*(4095+4003070)=400716500
         →0400716500(左0詰めにて10桁にする)

{認証情報3(10桁)}=
         [{係数3}]*[[{係数1}*{現在時刻(HHMM)}]+[{係数2}*{店舗ID}]]

         (100)*((5*0235)+(10*400307)=100*(1175+4003070)=400424500
         →0400424500(左0詰めにて10桁にする)

よって、セットする{認証情報}は、040130650004007165000400424500」になります。
認証情報で利用する時刻は、日本標準時間の前後5分までの"ずれ"を許容しています。
*****************************************************************************

このような方法なのですが、宜しくご指導ください。
回答者 呑兵衛@大阪  [削除]  投稿日 11/17(土) 21:47:53
では認証情報のフォーマットのみで。

($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
# cargo.cgi に上の行があります。サーバーが海外の場合、 (time + 時差*60*60) にしてください。

my ($id_num, $id_num_1, $id_num_2, $id_num_3, $id_num_new, $opt_1, $opt_2, $opt_3);
# 時間をフォーマット
$year = sprintf ("%d", $year + 1900); $mon = sprintf ("%02d", $mon + 1);
$mday = sprintf "%d", $mday; $hour = sprintf "%02d", $hour; $min = sprintf "%02d", $min;
# 月日、時分を文字連結
$mon .= $mday; $hour .= $min;
# 係数の設定
$opt_1 = '5';
$opt_2 = '10';
$opt_3 = '100';
$id_num = $opt_2 * 400307;
# 計算し、数値を左0詰めにて10桁にする
$id_num_1 = sprintf "%010d", $opt_3 * ($opt_1 * $year + $id_num);
$id_num_2 = sprintf "%010d", $opt_3 * ($opt_1 * $mon + $id_num);
$id_num_3 = sprintf "%010d", $opt_3 * ($opt_1 * $hour + $id_num);
# 連結する
$id_num_new =  $id_num_1 . $id_num_2 . $id_num_3;

$id_num_new が認証情報となります。試してみてください。
質問者 たっつあん  [削除]  投稿日 11/19(月) 21:00:31
呑兵衛@大阪さま。ありがとうございます。
早速、頑張って試してみることに致します。
本当にありがとうございました。できましたら再度、お知らせいたしますね。
では、今から....。

返信(回答)する


Web裏技