序章
Zheli Officeは、浙江省政府サービスネットワークの統合プラットフォーム機能に基づくAPPです。2021年8月、長江デルタの住民にサービスを提供する「オールインワンカード」エリアに「ZheliOffice」APPがリリースされました。「ZheliOffice」には、「手持ちの業務」、「手持ちの相談」、「手持ちの苦情」の3つの主要な機能セクションに加えて、社会保障の確認、積立金の引き出しなど、何百もの便利なサービスアプリケーションが含まれています。交通違反の処理と罰金の支払い、および授業料の支払い。
「ZheliOffice」APPは、公的支払い、出生登録、診断と治療の登録、社会保障証明書の印刷、積立金の引き出し、交通違反の処理など、17のカテゴリで300以上の便利なアプリケーションを起動し、168の州レベルのハンドヘルドを提供していますサービスと平均的な市レベルの452アイテム、郡レベルの平均371アイテム。
*公式アドレス-ここに覚えておいてください
- 「ZheliOffice」サービスアクセス関連技術仕様
- 「ZheliOffice」およびZhejiangGovernmentAffairs Service Network Service Listing Application Form
- 「ZheliOffice」アプリケーション開発管理プラットフォーム
- Zheli Officeの棚の仕様:「ZheliOffice」H5マイクロアプリケーション棚のレビュー仕様
- ZheliOfficeH5アプリケーションの技術文書
- 政府サービス部門アカウント:「政府機関Yiheアカウント」
- ガバメントアフェアーズセンター-アプリケーション開発管理プラットフォーム
- 政府関連センター-アプリケーション開発管理プラットフォームアカウントの取得:「政府機関Yiheアカウント」
- 浙江省政府サービスネットワーク統合ユーザーシステムドッキング:「ユーザー認証システムドッキングアプリケーションプロセス」
- IRSアプリケーション開発サブシステム
- 浙江省の棚に監査データを添付するためのパスワード:xas7
- ZheliOffice-IRSアプリケーションリリースの問題ステートメント
DingTalkテクノロジードッキンググループ
1グループ: | 31376954 |
2つのグループ: | 34340559 |
3グループ | 31419900 |
リスティングプロセス
1.アカウントを申請する
Zheli Officeの個人情報を接続する必要がある場合は、個人を使用し、法人アカウントを使用して法人に接続します。
- 正式な住所をご覧ください-6。政府機関は、政府機関のYiheアカウントを使用してログインし、新しいリリースアプリケーションを作成します。プロセスに従ってYiheアカウントを申請する必要があります。使用される情報は3つあります。 、1つは政府機関の名前、1つはアカウント、もう1つはパスワードです。
- Zheli Officeアプリにログインすることで、個人情報を直接利用することができます
- 法人アカウント情報は、企業がZheliOfficeアプリにログインするための最良の方法を必要とします
2.アプリケーション
1.まず、適用された政府のアカウント番号(正式な住所-3)を使用して政府事務センターにログインし、対応する政府機関を選択して、適用されたアカウントのパスワードを入力します
ログイン後はこんな感じになります
次に、新しいアプリケーションを作成します。
次のステップは、アプリケーション開発情報を入力することです:サーバーシステムを同時に作成するかどうか:いいえ!!!
次のステップは、基本的なアプリケーションをプレビューして作成することです。ここでは、デプロイメント、公開、および構成の操作が基本的に使用されます。
[構成]をクリックして、appidとappkeyを取得します
第四に、アプリケーションの開発
ユーザー情報を接続する必要がない場合は、H5アプリケーションを直接開発することができます。ユーザー情報を個人や法人に接続する必要がある場合は、以下を参照してください。
公式アドレス-9をクリックし、ドッキングユーザー情報の形成を申請するプロセスに従います。申請が承認されると、アクセスコードとドッキング情報(個人、法人のTianguが釘を引っ張るグループ)があり、それらを送信しますメールボックスにアクセスコードを取得し、バックエンドスタッフ個人ユーザー/政府ユーザーを接続する必要がある場合(杭州イーヘインターネットソフトウェアテクノロジー株式会社):Yu Jintao;法人ユーザー(杭州天古情報技術株式会社) 。、Ltd.):Yang Jiawei / Kunji-Zhang Donghui;
バックエンド担当者がユーザー情報を接続するためのキーコードの一部:
ツール
- ツール:
public class ZlbLoginUtil {
private static String servicecode = "";//接入码
private static String servicepwd = "";//接入密码
private static String datatype = "json";
public static JSONObject getZlbUserInfo(String ticket) throws Exception {
JSONObject jsonObject = ticketValidation(ticket);
if(jsonObject!=null&&"0".equals(jsonObject.getString("result"))){
jsonObject = getUserInfo(jsonObject.getString("token"));
}
return jsonObject;
}
public static JSONObject ticketValidation(String ticket) throws Exception {
JSONObject jsonObject = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String time = sdf.format(new Date());
String sign = Md5Utils.getMd5(servicecode+servicepwd+time);
String url = "https://appapi.zjzwfw.gov.cn/sso/servlet/simpleauth";
String content = "method=ticketValidation";
content += "&servicecode="+servicecode;
content += "&time="+time;
content += "&sign="+sign;
content += "&st="+ticket;
content += "&datatype="+datatype;
jsonObject = sendGet(url,content);
return jsonObject;
}
public static JSONObject getUserInfo(String token) throws Exception {
JSONObject jsonObject = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String time = sdf.format(new Date());
String sign = Md5Utils.getMd5(servicecode+servicepwd+time);
String url = "https://appapi.zjzwfw.gov.cn/sso/servlet/simpleauth";
String content = "method=getUserInfo";
content += "&servicecode="+servicecode;
content += "&time="+time;
content += "&sign="+sign;
content += "&datatype="+datatype;
content += "&token="+token;
jsonObject = sendGet(url,content);
return jsonObject;
}
public static JSONObject sendGet(String urlstr,String content) {
String result = "";
JSONObject jsonObject = null;
try{
String urlName = urlstr + "?"+content;
URL U = new URL(urlName);
URLConnection connection = U.openConnection();
connection.setRequestProperty("Content-Type","application/json");
System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 连接超时30秒
System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时30秒
connection.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));
String line;
while ((line = in.readLine())!= null) {
result += line;
}
jsonObject = JSON.parseObject(result.toString());
in.close();
}catch(Exception e){
e.printStackTrace();
}
return jsonObject;
}
public static JSONObject sendPost(String urlstr,String content){
JSONObject jsonObject = null;
try {
URL url = new URL(urlstr);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("POST");
http.setRequestProperty("Content-Type","application/json");
http.setDoOutput(true);
http.setDoInput(true);
System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 连接超时30秒
System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时30秒
http.connect();
OutputStream os = http.getOutputStream();
os.write(content.getBytes("UTF-8"));// 传入参数
os.flush();
os.close();
StringBuilder sb = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(http.getInputStream(),"utf-8"));
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
jsonObject = JSON.parseObject(sb.toString());
sb.setLength(0);
} catch (Exception e) {
e.printStackTrace();
}
return jsonObject;
}
}
- 個人的な部分:
try {
String ticket = req.getParameter("ticket");//ticket 票据
String sp = req.getParameter("sp");
if(StringUtils.isNotEmpty(ticket)){
//获取浙里办用户信息
JSONObject jsonObject = ZlbLoginUtil.getZlbUserInfo(ticket);
// System.out.println("获取浙里办用户信息:"+jsonObject.toString());
}else{
return ResultVoUtil.error("获取用户信息失败,错误码:"+jsonObject.get("result")+",错误信息:"+jsonObject.get("errmsg"));
}
}else{
return ResultVoUtil.error("校验信息丢失");
}
} catch (Exception e) {
e.printStackTrace();
return ResultVoUtil.error("失败");
}
- 法的な部分:
// 跳转Url
String redirectUrl = "";
// 从Request请求的参数中获取ssotoken
String ssotoken = request.getParameter("ssotoken");
System.out.println("ssotoken = " + ssotoken);
// 取具体办事事项地址(若此项有值,成功登录后请跳转此地址到具体事项,否则跳转系统首页)
String sp = request.getQueryString();
JSONObject jsonObj=new JSONObject();
if (null != sp && !sp.trim().equals("")) {
// 清理事项地址前的“goto=”标识
sp = sp.substring(5);
System.out.println("具体业务办理地址: " + sp);
response.sendRedirect(gotoUrl);
}
// 验证令牌并获取用户的登录信息
jsonObj = doQuery(ssotoken, projectId, projectSecret);
int errCode = jsonObj.getInt("errCode");
// errCode = 0 表示认证成功
if (0 == errCode) {
// 验证成功
String info = jsonObj.getString("info");
System.out.println("验证令牌并获取用户的登录信息接口返回数据:" + info);
JSONObject legalInfo = JSONObject.fromObject(info);
// 企业名称
String companyName = legalInfo.get("CompanyName").toString();
if (null != companyName) {
System.out.println("企业名称 = " + companyName);
}
} else {
// 验证失败,跳转登录失败的页面
return ResultVoUtil.error("验证失败");
}
バックエンド担当者のローカル開発が完了した後、個人および法人のアドレスを、個人ユーザーのドッキング担当者および法人ユーザーのドッキング担当者に提供する必要があります。
フロントエンド担当者がユーザー情報に接続するためのキーコードの一部:
//常规适老版本切换
ZWJSBridge.getUiStyle().then((result) => {
console.log(result, "判断是常规,还是适老版本");
getApp().globalData.condition = result.uiStyle;
if (result.uiStyle == 'normal') {
getApp().globalData.font = "0.7rem";
} else {
getApp().globalData.font = "0.9rem";
}
}).catch((error) => {
console.log(error, "错误信息");
});
//个人和法人用户免登录
ZWJSBridge.getUserType()
.then(result => {
console.log(result, '用户信息');
//法人
if (result.userType == 2) {
window.location.replace(
'https://esso.zjzwfw.gov.cn/opensso/spsaehandler/metaAlias/sp?spappurl=https://qiantang.llis.cc/qt_nj_api/external/login/legal/zlb'
);
} else {
//个人
window.location.replace('https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=zsnj');
}
})
.catch(error => {
console.log(error);
});
//判断浙里办支付宝入口
if(支付宝浙里办小程序入口){
windows.location.replace("https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=【接入代码】&goto=【附带跳转地址,以sp参数返回】")
}else{ //同源APP入口(含浙里办APP 及 其他 同源适配APP容器环境)
windows.location.replace("https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=【接入代码】&goto=【附带跳转地址,以sp参数返回】")
}
ユーザー情報を取得するためにログインする全体的なプロセスは次のとおりです。
5.共同デバッグをデプロイします
アプリケーションは、最初に政府関連センターに公開する必要があります。次に、特定のアプリケーションのログインを免除し、ユーザーのログイン情報を接続できます。
クリックして直接オンラインにすると、アクセスアドレスが生成され、ユーザー情報がバックグラウンドでアプリケーションリンクにリダイレクトされます。
6.リストするための情報を準備する
1.アプリケーションの開発後、オンライン申請フォームを準備する必要があります
2.同時に、ミニプログラムの立ち上げのための一連の資料を準備する必要があります-
公式アドレス-11にアクセスして、棚にある情報テンプレートをダウンロードします
- [] 1.「ZheliOffice」は、同じソースからアプリケーションオンラインアプリケーションレポートをリリースしました
- [] 2. Icon.png
- [] 3. AndroidとAppleの両端にあるAlipayセルフテスト録画画面(合計4つ)
- [] 4.1 ZheliOfficeAPPアプリケーションテストQRcode.png
- [] 4.2Alipay-ZheliOfficeミニプログラムアプリケーションテストQRCode.png
- [] 5.アプリケーションにリストされているビジネス機能の説明(必須).docx
- []6.棚の操作および保守のmaterials.docxに関するZheliOfficeの3部構成のアプリケーション
- []7.H5アプリケーションpackage.zip
- []8.ハンドヘルド農業機械アプリケーション安全性テストReport.docx
- []9.「ZheliOffice」サービス適応完了アプリケーションReport.xlsx
- []10.[圧力テストレポート]銭塘農業機械浙江Office.pdf
7.リストに提出する
PC端末はZheliOfficeのリストアドレスを取得する必要があります。申請した政府機関のYiheアカウントの実際の所有者に連絡し、コードをスキャンしてログインします。
シーケンス6を使用します。1。オンライン申請フォームに記入します。6。2.補足情報の添付ファイルは、最後に送信できます。レビュー期間中、関連する担当者が各リンクで対応する承認を行います。
注:承認プロセスの各リンクのフィードバックにタイムリーに注意してください。フィードバックの各リンクの修正時間(修正が必要)は2営業日を超えてはなりません。それ以外の場合、プロセスは拒否されます。
申請の最後の担当者が承認され承認されるまで、申請は成功したと見なされます。
対応するリージョンを選択すると、正常に起動されたミニプログラムを確認できます。
8.アプリが消える
公式回答:
1.総務センター-アプリケーション開発管理プラットフォーム突然のアプリケーションが表示されない場合は、アプリケーションの所有者に連絡して、ストックを介してIRSシステムにリンクされているかどうかを確認してください。
1.1. IRSアソシエーションの場合、開発者はアソシエーション後にIRS-DeveloperWorkbenchを介して操作します。
1.2. IRS以外の接続が原因で申請書が表示されない場合は、浙江省政府問題作業フォームを期限内に提出してください。所有者の教師から提出された申請書、申請書名、申請書の詳細URLを浙江省に提出できます。地方事務所。調査の進行を支援するために、作業指示書、作業指示書番号、および技術サポートを送信します。リストの申し込みは、このリンクhttps://login-pro.ding.zj.gov.cn/ssoLogin.htm?APP_NAME=tianshu-zwdd&BACK_URL=https%3A%2F%2Fyidaから申し込みを提出した教師が問い合わせることができます。 -pro.ding。zj.gov.cn%2FtaskCenter.html#/ notifyme?_k = iw6vor
簡単に言えば:
基本的に、アプリケーションはIRS開発者ワークベンチに移行されました:公式アドレス-10、使用方法は政府事務センターのそれと同じです
9.IRSアプリケーションのアップグレード
詳しくは、公式アドレス-12をご覧ください。