// // //引 数 : ユーザーPIN //戻り値 : ユーザーID文字列 または 空文字 //**************************************************************************************************/ var sendBtn = null; function func_auth_iccard(strUserPin){ sendBtn = document.getElementById("Submit"); sendBtn.disabled = true; //Disableに設定 func_device_access(strUserPin).then(res => { if (res != "") { var adminId = document.getElementById("admin_id"); adminId.value = res; FormSubmit(); return; } sendBtn.disabled = false; //Enableに設定 }); } function func_request_websocket_error_open(event) { alert( "MZCA02016E WebSocketサーバーサービスに接続できません。" ); sendBtn.disabled = false; //Enableに設定 } function func_request_websocket_error_message(event) { alert( "MZCA02017E WebSocketサーバー送受信エラー発生しました。" ); sendBtn.disabled = false; //Enableに設定 } function func_request_websocket_close_error(event) { alert( "MZCA02020E WebSocketサーバから切断されました。" ); sendBtn.disabled = false; //Enableに設定 } async function func_device_access(strUserPin) { var result = ""; var isEmrg = false; await func_request_websocket('{"division":2,"pin":null}').then(res => { do { var json = null; try { json = JSON.parse(res); } catch(e) { alert( "MZCA02018E WebSocketサーバー受信メッセージの形式が正しくありません。" ); return result; } if (json.result == -2) { // パラメータエラー。 alert( "MZCA02019E WebSocketサーバー送信メッセージの形式が正しくありません。" ); return result; } if (json.result != 0) { // 予期せぬエラー isEmrg = true; break; } // エラーチェック2(デバイスの状態は問題ないか?) if (json.IntIKCondition != 0) { if (json.IntIKCondition == -4) { // リーダー複数検知 alert( "MZCA02011E ICカード、またはeTokenを複数検出しました。\nICカードリーダーを1台のみ接続しており、カードが置かれているか確認して再度実行してください。" ); return result; } else if (json.IntIKCondition == -1 || json.IntIKCondition == -2 ) { // リーダー未検知 alert( "MZCA02010E ICカードリーダーを検出できませんでした。\nICカードリーダーを1台のみ接続しており、カードが置かれているか確認して再度実行してください。" ); return result; } else if (json.IntIKCondition == 9) { // カード未検知 alert( "MZCA02012E ICカードを検出できませんでした。\nICカードリーダーを1台のみ接続しており、カードが置かれているか確認して再度実行してください。" ); return result; } else { isEmrg = true; } break; } if( json.IntIKCpVeri != 2) { // ICカード(2)ではない場合 // リーダー未検知 alert( "MZCA02010E ICカードリーダーを検出できませんでした。\nICカードリーダーを1台のみ接続しており、カードが置かれているか確認して再度実行してください。" ); return result; } } while (0) // 予期せぬエラーパターン if (true == isEmrg) { alert( "MZCA02015E デバイス認証で予期せぬエラーが発生しました。\n戻り値:" + json.result + "\nデバイスステータス:" + json.IntIKCondition + "\n認証ステータス:" + json.IntIKCpVeri + "\n詳細内容:\n" + json.errormsg); return result; } result = "OK"; }); if ("OK" != result) { return result; } result = ""; await func_request_websocket('{"division":1,"pin":"' + strUserPin + '"}').then(res => { do { var json = null; try { json = JSON.parse(res); } catch(e) { alert( "MZCA02018E WebSocketサーバー受信メッセージの形式が正しくありません。" ); return result; } if (json.result == -2) { // パラメータエラー。 alert( "MZCA02019E WebSocketサーバー送信メッセージの形式が正しくありません。" ); return result; } if (json.result != 0) { // 予期せぬエラー isEmrg = true; break; } // エラーチェック5(デバイスの状態は問題ないか?) このロジックが通るタイミングはほぼ無いが、念の為 if (json.IntIKCondition != 0) { if (json.IntIKCondition == -4) { // リーダー複数検知 alert( "MZCA02011E ICカード、またはeTokenを複数検出しました。\nICカードリーダーを1台のみ接続しており、カードが置かれているか確認して再度実行してください。" ); return result; } else if (json.IntIKCondition == -1 || json.IntIKCondition == -2 ) { // リーダー未検知 alert( "MZCA02010E ICカードリーダーを検出できませんでした。\nICカードリーダーを1台のみ接続しており、カードが置かれているか確認して再度実行してください。" ); return result; } else if (json.IntIKCondition == 9) { // カード未検知 alert( "MZCA02012E ICカードを検出できませんでした。\nICカードリーダーを1台のみ接続しており、カードが置かれているか確認して再度実行してください。" ); return result; } else { // その他(予期せぬエラー) isEmrg = true; } break; } // エラーチェック6(PIN認証結果、および取得する証明書有無は正常か?) if (json.IntIKCpVeri != 0) { if (json.IntIKCpVeri == 7) { // PIN誤り alert( "MZCA02013E ユーザーPINの入力に誤りがあります。\n正しいユーザーPINを入力し、再度実行してください。" ); return result; } else if (json.IntIKCpVeri == 10 ) { // 証明書なし alert( "MZCA02014E このICカードには証明書が格納されていません。" ); return result; } else { // その他(予期せぬエラー) isEmrg = true; } break; } } while (0) // 予期せぬエラーパターン if (true == isEmrg) { alert( "MZCA02015E デバイス認証で予期せぬエラーが発生しました。\n戻り値:" + json.result + "\nデバイスステータス:" + json.IntIKCondition + "\n認証ステータス:" + json.IntIKCpVeri + "\n詳細内容:\n" + json.errormsg); return result; } // ユーザーID取得 result = json.StrCertUcd; }); return result; } //-->