// // //引 数 : ユーザー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; // R5年度改修対応のため //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) { // リーダー複数検知 // R5年度改修対応のため alert( "MZCA02011E ICカード、またはeTokenを複数検出しました。\nICカードリーダーまたはeTokenを1台のみ接続しており、カードが置かれているか確認して再度実行してください。" ); return result; // R5年度改修対応のため } else if (json.IntIKCondition == -1 || json.IntIKCondition == -2 || json.IntIKCondition == -3 ) { // リーダー未検知 // R5年度改修対応のため alert( "MZCA02010E ICカードリーダーまたはeTokenを検出できませんでした。\nICカードリーダーまたはeTokenを1台のみ接続しており、カードが置かれているかeTokenを接続しているか確認して再度実行してください。" ); 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 ) { // 証明書なし // R5年度改修対応のため alert( "MZCA02014E このICカードまたはeTokenには証明書が格納されていません。" ); 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; } //-->