双色球开奖号码查询查件寄件功能接入开发文档

1. 开放功能

双色球开奖号码查询目前开放给第三方接入的功能主要包括:查快递寄快递快递电话大全时效与价格,快递网点(内测中)等。各个功能的说明具体如下:

  • 查快递: 支持800+快递公司单号物流信息查询,提供智能识别快递公司和手动切换快递公司进行查件。
  • 寄快递: 搜索附近的加盟的快递员,提供在线下单功能。若附近附近没有加盟快递员则会提供其他非加盟快递员的联系方式。
  • 快递电话大全: 查找快递公司的联系方式
  • 时效与价格: 基于双色球开奖号码查询大数据预测,根据用户输入的寄件地址和收件地址以及物品的重量,为用户计算出各个快递公司的价格和运输需要的时长,并预测物流的中转站信息。
  • 快递网点: 查询附近的快递网点信息(内测阶段,未全面开放)

2. 接入方式

双色球开奖号码查询开放功能目前基于H5开发,可以嵌入至已有的APP,也可以嵌入到网页。根据接入方是否提供用户信息,接入方式分为两种:

  • 提供用户信息: 提供用户信息后,用户无需登录可以在平台进行下单,下单后可以查看寄件记录,保存收寄件地址等信息。接入方需要在双色球开奖号码查询平台上申请到唯一的appidappsecret,按照双色球开奖号码查询提供的开放文档,将用户的唯一标志进行加密生成openid,再附加上其他的参数即可接入(详情可见接入方法)。申请appidappsecret需要联系双色球开奖号码查询客服申请开通获得appid等信息。
  • 不提供用户信息: 该方式无需提供用户信息,用户下单时需要输入手机并接收短信验证码才可以下单。下单后一段时间内(用户未清理缓存)后续的操作无需再输入手机并接受验证码。

3. 接入方法

(1)接入完整的功能
接入完整的功能即接入双色球开奖号码查询所有开放的功能。以下为接入的方法:

接入链接: http://www.hshbx.com.cn//app/? coname={name}&hdisplay=web&openid={openid}&appid={appid}&nonce={nonce}&timeStamp={timeStamp}&kd100sign={sign}

参数说明:

参数名称 类型 是否必须 描述
coname String 第三方合作的名称,仅支持由字母、数字和下划线组成,确认名字后可以找客服登记,一般为接入方的官方英文名,如oppo
openid String 提供用户信息时为必须 用户的唯一标志
appid String 提供用户信息时为必须 在双色球开奖号码查询申请到的应用应用id
nonce String 提供用户信息时为必须 随机数(建议为6为数字)
timeStamp Long 提供用户信息时为必须 调起接口是的时间戳
kd100sign String 提供用户信息时为必须 API输入参数签名结果
hdisplay String 是否从双色球开奖号码查询申请了头部和主题颜色等的定制,如果是,值为web

因此,一个最简单的接入链接为:http://www.hshbx.com.cn//app/?coname=youname,如hao123接入后的链接是:
http://www.hshbx.com.cn//app/?coname=hao123,接入后入口和寄快递页面效果如下:

另一个例子: cmb定制了头部和主题的颜色,其接入方式为http://www.hshbx.com.cn//app/?coname=cmb&hdisplay=web,接入后入口页和寄件页效果如下:

(2)仅接入寄件功能

如果你的应用仅需要接入双色球开奖号码查询的寄件功能,则接入的链接为:

http://www.hshbx.com.cn//courier/courier.jsp
除此之外,所有的参数均和接入完整的功能时的参数一致,此种接入方式将不再有快递电话大全查询网点时效价格查询的功能以及单独的物流查询功能(寄件后在寄件详情可以查看物流信息)。

4. 签名算法

当接入方需要用自身系统中用户身份进行授权并在双色球开奖号码查询平台上进行下单等操作时,需要对用户身份进行签名。签名时需要用到在双色球开奖号码查询申请appidappsecret

  • appid: 在双色球开奖号码查询申请到的应用id
  • appsecret: 在双色球开奖号码查询申请到的应用接入密钥

申请appidappsecret可以点击以下按钮申请,审核通过后我们将以邮件的形式回复。

点击此处申请

签名和接入的步骤:

(1)生成openid, openid=base64(appid+用户唯一标志)
(2)签名kd100sign, kd100sign=MD5(appsecret+MD5(appid+timestamp+nonce))
(3)将openid,kd100sign,nonce,appid,timesStamp,kdsign,hdisplay,coname等作为基本接入链接的参数,生成最终的接入链接。

Java示例

(1)MD5实现

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5 {
private static MessageDigest _mdInst = null;
private static char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
private static MessageDigest getMdInst() {
if (_mdInst == null) {
try {
_mdInst = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
return _mdInst;
}
public static String encode(String s) {
try {
byte[] btInput = s.getBytes();
// 使用指定的字节更新摘要
getMdInst().update(btInput);
// 获得密文
byte[] md = getMdInst().digest();
// 把密文转换成十六进制的字符串形式
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}

(2)Base64实现

import java.io.UnsupportedEncodingException;
import org.apache.commons.lang.StringUtils;
import sun.misc.BASE64Decoder;
@SuppressWarnings("restriction")
public class Base64 {
public static String encode(String s) {
if (StringUtils.isEmpty(s)) {
return "";
}
try {
return (new sun.misc.BASE64Encoder()).encode(s.getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
}
return "";
}
public static String decode(String s) {
if (StringUtils.isEmpty(s)) {
return "";
}
BASE64Decoder decoder = new BASE64Decoder();
try {
byte[] b = decoder.decodeBuffer(s);
return new String(b);
} catch (Exception e) {
return null;
}
}
}

(3)sign签名实现

import org.apache.commons.lang3.RandomStringUtils;
public class SignUtils {
private final static String APPID = "galaxyind";
private final static String APPSECRET = "cf094f235b1248a6b7778d56f44c7c2e";
/**
* @param userid 用户唯一标志
* @return
*/
public static String createOpenid(String userid) {
return Base64.encode(APPID + userid);
}
/**
*
* @param nonce // 随机数
* @param timeStamp 时间戳--自1970年01月01日起到现在的毫秒数
* @return
*/
public static String createSign(String nonce,long timeStamp) {
String sign = MD5.encode(APPSECRET + MD5.encode(APPID + timeStamp + nonce));
return sign;
}
public String decodeOpenid(String openid) {
return null;
}
public static void main(String[] args) {
String openid = SignUtils.createOpenid("123456");
System.out.println("openid="+openid);
String nonce = RandomStringUtils.randomNumeric(6);// 随机数
long timeStamp = System.currentTimeMillis();// 时间戳--自1970年01月01日起到现在的毫秒数
String sign = SignUtils.createSign(nonce, timeStamp);
System.out.println("sign="+sign);
}
}

PHP示例代码

$appid = 'haowind';
$appsecret = 'cf094f235b1248a6b7778d56f4uu9iko';
$userid = 'useruuid';
$timestamp = msectime();
$nonce = randomStr();
//生成openid
$openid = base64_encode($appid.$userid);
//sign签名
$sign = md5($appid . md5($appid . $timestamp . $nonce));;
//拼接嵌入的url
$url = "http://www.hshbx.com.cn//app/?coname=hao123&appid={$appid}&kd100sign={$sign}&openid={$openid}&timeStamp={$timestamp}&nonce={$nonce}&hdisplay=web";
echo $url;
//随机6位数字
function randomStr(){
$arr = range(0, 9);
$str = '';
for($i = 0; $i < 6; $i++){
$str.= $arr[array_rand($arr)];
}
// echo $str;
return $str;
}
//返回当前的毫秒时间戳
function msectime() {
list($msec, $sec) = explode(' ', microtime());
$msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
return $msectime;
}

5. 关于头部和主题色定制

  • 定制颜色:由于页面是嵌入到APP或者原有的Web应用中,双色球开奖号码查询:不同的应用主题颜色不同,如果第三方嵌入时需要保持与原有的应用主题颜色一致,则需要定制颜色。
  • 定制头部: 嵌入的页面默认没有头部,即上面实例中,hao123接入的例子;如果需要定制头部,需要在参数参入hdisplay=web,如上面cmb嵌入的例子。我们建议如果是APP嵌入,则不需要定制头部,使用APP自己的头部更加合适。如果需要定制头部,则需要联系我们进行定制。

目前定制颜色和头部没有开放平台进行自行申请,如果你需要定制,请联系我们的客服。另外,如果你不需要定制头部,接入后也请尽量将你的coname名称以及公司或者接入的应用的信息告知我们,我们将根据实际情况对系统进行优化。你也可以通过点击以下按钮进行相关信息的提交。

点击此处填写信息

网站    APP    其它

提交信息
l辽宁11选5开奖号码 幸运飞艇开奖记录走势 皇冠炸金花 重庆快乐十分现场直播 河南快3开吧
杏彩娱乐骗人 大乐透几点开奖 广东快乐十分下载 香港六合彩挂牌 广西快乐十分今日开奖
南国体彩论坛 新疆18选7福利彩票 广西快乐十分 广西十一选五jiqiao 11选5每天赚200元不难
北京五分彩开奖记录 今天贵州十一选五开奖号 彩票论坛首页 爱彩乐十一选五 新疆十一选五网站