ショートメッセージ認証コードインターフェースAPIの紹介

3595 ワード

天翼開放プラットフォームの住所:http://open.189.cn/
登録が必要です。開発者として実名制で登録して、身分証の電子写真をアップロードして、審査を待ちます。
 
このプラットフォームは一連の機能を提供して、対外開放して、ゆっくりと研究します。
 
第一に、認証インターフェース
呼び出しアドレス、GET/POST方式:
 https://oauth.api.189.cn/emp/oauth2/v2/authorize
作用:
天翼開放プラットフォームの授権コードAC-Authorization Codeを取得します。
取得手段:
天翼のオープンプラットフォームでアカウントを登録して、身分認証を完成します。
アプリケーションを作成します。天翼開放プラットフォーム上の唯一の標識、つまりapp_を割り当てます。id
天翼オープンプラットフォームからアプリケーションへの鍵情報、ap_secret
 
第二に、トークンインターフェース
呼び出しアドレス、POST方式:
 https://oauth.api.189.cn/emp/oauth2/v2/access_token
作用:
最終的なATアクセストークンを取得しました。
取得手段:
AC授権コードで交換します。
プラットフォームはトークンaccess_にアクセスするために戻ってきます。token及びそれに対応する更新トークンrefresh_token
 
第三に、信頼コードを取得する。
要求アドレス、Get方式:
http://api.189.cn/v2/dm/randcode/token
作用:
一時的な信頼コードTokenを取得する(この信頼コードは「検証コード下で送信」インターフェースを呼び出すときに使用される)
この信頼コードは3分以内か1回使用されると無効になります。
要求パラメータ:
ap_id            プラットフォームはアプリケーションのidに割り当てられます。
access_token トークンインターフェースで取得する 
timestamp       現在のタイムスタンプ
sign                署名は他のパラメータと一緒に計算に参加して得られます。
 応答結果:
token             新しいトークンを返します。メッセージを送るときに使います。
 
 
第四に、確認メッセージの下で送信する。
リクエストアドレス、POST方式:
http://api.189.cn/v2/dm/randcode/send
機能説明:
1.指定された携帯番号に検証コードメッセージを送信する
2.プラットフォームは「検証コード通知住所」に検証コードの内容を送る。
 
 
プラットフォームのコールバックアドレス:
http://10.0.61.66:8080/sms/servlet/rcReceive
書いたばかりのservletは、プラットフォームとして検証コードを返すときに呼び出すインターフェースです。
 
Random CodeServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.gc.sms.util.JsonUtil;
import com.gc.sms.util.StringUtil;



public class RandomCodeServlet extends HttpServlet {
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		String identifier = req.getParameter("identifier");
		String rand_code = req.getParameter("rand_code");
		
		String res_code = "0";//0     
		if(StringUtil.hasNull(identifier, rand_code)) {
			res_code = "1";// 1     
		}
		resp.setContentType("application/json;charset=UTF-8");
		PrintWriter pw = new PrintWriter(resp.getOutputStream());
		Map<String,Object> map = new HashMap<String,Object>();
		map.put("res_code", res_code);
		String jsonString = JsonUtil.toJson(map);
		pw.print(jsonString);
		pw.flush();
	}
	
}
 
 JsonUtil.java 
package com.gc.sms.util;

import java.util.Map;

import emp.tool.json.JSONException;
import emp.tool.json.JSONObject;

public class JsonUtil {
	public static String toJson(Map<String,Object> paramsMap) {
		JSONObject json = new JSONObject();
		try {
			for (String key : paramsMap.keySet()) {
				json.put(key, paramsMap.get(key));
			}
			return json.toString();
		}catch(JSONException e) {
			e.printStackTrace();
			throw new RuntimeException("  json     ", e.getCause());
		}
	}
}