POS 商户编号查询
目录
接口使用
我要查询
提示:请在下面的 Demo 中输入您要查询的数据,点击查询即可。
POS 商户编号查询
查询说明
目前支持中国大陆地区所有线下收单机构的商户,通过商户编号查询商户信息,如:收单机构、MCC编码类别、适用费率及商户所在地区等信息。
接口描述
功能描述
通过商户编号获取中国大陆地区所有线下收单机构的商户信息,如:收单机构、MCC编码类别、适用费率及商户所在地区等信息。
URL 示例
1)http 协议:
POST 方式请求:
http://cha.ebaitian.cn/api/json?appid=xxx&module=getPosmccInfo&merchantNo=xxx&sign=xxxGET 方式请求:
http://cha.ebaitian.cn/api/json?type=get&appid=xxx&module=getPosmccInfo&merchantNo=xxx&sign=xxx2)https 协议:
POST 方式请求:
https://cha.ebaitian.cn/api/json?appid=xxx&module=getPosmccInfo&merchantNo=xxx&sign=xxxGET 方式请求:
https://cha.ebaitian.cn/api/json?type=get&appid=xxx&module=getPosmccInfo&merchantNo=xxx&sign=xxx请求参数
数据包体
{
    "type": "get",
    "appid": "1000xxxx",
    "module": "getPosmccInfo",
    "merchantNo": "820521154110001",
    "sign": "ecab4881ee80ad3d76bb1da68387428ca752eb885e52621a3129dcf4d9bc4fd4"
}参数说明
| 参数 | 必选 | 类型 | 描述 | 
|---|---|---|---|
| type | 否 | string | 授权接口的请求方式 | 
| appid | 是 | string | 授权接口的 AppID,请填写您在我要查官网上申请到的 AppID | 
| module | 是 | string | 目标请求的数据模块,查询 POS 商户编号为:getPosmccInfo | 
| merchantNo | 是 | string | 目标要查询的商户编号,即 POS 签购单上的商户编号,一般为15位数字 | 
| sign | 是 | string | 请求凭证,具体计算方式见下面的其他说明 | 
其他说明
1)type:可选值 get,如果赋值 get,则以 get 方式提交数据;默认以 post 方式提交数据;
				2)sign:签名校验,根据公式 $sign=sha256(appid=$appid&module=getPosmccInfo&merchantNo=$merchantNo&appkey=$appkey) 生成;其中:appkey 为授权接口的 AppKey,请填写您在我要查官网上申请到的 AppKey 。
构造伪代码如下:
string type = "get"; //请求方式,可以赋值为:post
string appid = "1000xxxx"; //sdkappid 对应的 appid,需要业务方高度保密
string module = "getPosmccInfo"; //请求的数据模块,此处赋值:getMobileArea
string merchantNo = "820521154110001"; //要查询的手机号码,注意仅能为中国大陆地区11位手机号码
string sign = sha256(appid=1000xxxx&module=getPosmccInfo&merchantNo=820521154110001&appkey=56cf61af4b7897e704f67deb88ae8f24);响应参数
数据包体
{
    "result":1,
    "description":"TRUE",
    "flag":"",
    "posmccInfo":{
        "posbankInfo":{
            "bankclass":"收单资质机构",
            "bankcode":"820",
            "bankareacode":"0",
            "bankareaname":null,
            "bankname":"盛付通"
        },
        "posareaInfo":{
            "areacode":"5211",
            "province":"湖北省",
            "city":"武汉市",
            "dis":"江岸区"
        },
        "posmccInfo":{
            "bclass":"民生类",
            "sclass":"加油、超市类",
            "mcccode":"5411",
            "broad":"大型仓储式超级市场大型仓储式超级市场",
            "rates":"0.34",
            "note":"包含“超市、仓储式大卖场、连锁店、便利店”等字样;
开架式连锁便利店集团,当其以整体方式签订入网协议,且在同一地区门店数量在20 家以上;
食品饮料自动售货机,以及综合菜市场的零售活动"
        }
    }
}参数说明
参数说明
| 参数 | 必选 | 类型 | 描述 | 
|---|---|---|---|
| result | 是 | string | 接口响应结果:0-失败;1-成功 | 
| description | 是 | string | 接口响应描述:一般为 TURE(result=1) 与 FALSE(result=0),或者返回错误信息 | 
| flag | 否 | string | 错误说明,没有错误则返回空 | 
| posmccInfo | 是 | object | 返回 POS 收单商户信息 | 
posmccInfo 参数说明:
| 参数 | 必选 | 类型 | 描述 | 
|---|---|---|---|
| posbankInfo | 是 | object | POS 收单机构信息,一般为银行或第三方电子支付公司 | 
| posareaInfo | 是 | object | POS 收单商户地区信息 | 
| posmccInfo | 是 | object | POS 收单商户详细信息 | 
posbankInfo 参数说明:
| 参数 | 必选 | 类型 | 描述 | 
|---|---|---|---|
| bankclass | 是 | string | POS 收单机构类别,一般为商业银行或商业收单机构 | 
| bankcode | 是 | string | POS 收单机构代码 | 
| bankareacode | 是 | string | POS 收单机构区域代码 | 
| bankareaname | 是 | string | POS 收单机构区域名称 | 
| bankname | 是 | string | POS 收单机构名称 | 
posareaInfo 参数说明:
| 参数 | 必选 | 类型 | 描述 | 
|---|---|---|---|
| areacode | 是 | string | POS 收单商户地区代码 | 
| province | 是 | string | POS 收单商户所在省(市/自治区) | 
| city | 是 | string | POS 收单商户所在市(区/自治州) | 
| dis | 是 | string | POS 收单商户所在区(县/市/区) | 
posmccInfo 参数说明:
| 参数 | 必选 | 类型 | 描述 | 
|---|---|---|---|
| bclass | 是 | string | POS 收单商户所属 MCC 大类名称 | 
| sclass | 是 | string | POS 收单商户所属 MCC 小类名称 | 
| mcccode | 是 | string | POS 收单商户 MCC 编码 | 
| broad | 是 | string | POS 收单商户 MCC 编码类别 | 
| rates | 是 | string | POS 收单商户适用费率 | 
| note | 是 | string | POS 收单商户其他备注信息 | 
SDK 及代码示例
PHP SDK
方法一:以 POST 方式请求数据
//接口参数
$api_url='http://cha.ebaitian.cn/api/json';
$api_appid='1000xxxx';
$api_appkey='56cf61af4b7897e704f67deb88ae8f24';
//函数,以POST方式提交数据,PHP需要开启CURL函数;数据传输安全,建议使用
function getPosmccInfo($merchantNo){
    global $api_url,$api_appid,$api_appkey;
    $posturl=$api_url;
    $data='appid='.$api_appid.'&module=getPosmccInfo&merchantNo='.$merchantNo;
    $sign=hash("sha256",$data.'&appkey='.$api_appkey);
    $postdata=array("appid"=>$api_appid,"appkey"=>$api_appkey,"module"=>"getPosmccInfo","merchantNo"=>$merchantNo,'sign'=>$sign);
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $posturl);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
    $output = curl_exec($curl);
    curl_close($curl);
    $obj=json_decode($output);
    $result=$obj->result;
    if($result==1){
        $value=$obj->posmccInfo->posbankInfo->bankname;
        $value.=','.$obj->posmccInfo->posareaInfo->province;
        $value.=','.$obj->posmccInfo->posareaInfo->city;
        $value.=','.$obj->posmccInfo->posareaInfo->dis;
        $value.=','.$obj->posmccInfo->posmccInfo->broad;
        $value.=','.$obj->posmccInfo->posmccInfo->rates;
    }else{
        $value=$obj->flag;
    }
    return $value;
}
//调用函数
$merchantNo='820521154110001';
echo getPosmccInfo($merchantNo);
exit;方法二:以 GET 方式请求数据
//接口参数
$api_url='http://cha.ebaitian.cn/api/json';
$api_appid='1000xxxx';
$api_appkey='56cf61af4b7897e704f67deb88ae8f24';
//函数,以GET方式提交数据
function getPosmccInfo($merchantNo){
    global $api_url,$api_appid,$api_appkey;
    $data='appid='.$api_appid.'&module=getPosmccInfo&merchantNo='.$merchantNo;
    $sign=hash("sha256",$data.'&appkey='.$api_appkey);
    $info_get=file_get_contents($api_url.'?type=get&'.$data.'&sign='.$sign);
    $info_json=json_decode($info_get, true);
    $result=$info_json['result'];
    if($result==1){
        $value=$info_json['posmccInfo']['posbankInfo']['bankname'];
        $value.=','.$info_json['posmccInfo']['posareaInfo']['province'];
        $value.=','.$info_json['posmccInfo']['posareaInfo']['city'];
        $value.=','.$info_json['posmccInfo']['posareaInfo']['dis'];
        $value.=','.$info_json['posmccInfo']['posmccInfo']['broad'];
        $value.=','.$info_json['posmccInfo']['posmccInfo']['rates'];
    }else{
        $value=$info_json['flag'];
    }
    return $value;
}
//调用函数
$merchantNo='820521154110001';
echo getPosmccInfo($merchantNo);
exit;Java SDK
//以下示例是以 GET 方式请求数据
public class QueryHelper {
	
    public static String apiurl="http://cha.ebaitian.cn/api/json";
    public static String appid="1000xxxx";
    public static String appkey="56cf61af4b7897e704f67deb88ae8f24";
    public static String module="getPosmccInfo";
    
    public static String getSHA256Str(String str){
        MessageDigest messageDigest;
        String encdeStr = "";
        try {
            messageDigest = MessageDigest.getInstance("SHA-256");
            byte[] hash = messageDigest.digest(str.getBytes("UTF-8"));
            encdeStr = Hex.encodeHexString(hash);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return encdeStr;
    }
    
    public static String get(String urlString) {
        try {
            URL url = new URL(urlString);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setConnectTimeout(5 * 1000);
            conn.setReadTimeout(5 * 1000);
            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.setInstanceFollowRedirects(false);
            conn.setRequestMethod("GET"); 
            int responseCode = conn.getResponseCode();
            if (responseCode == 200) {
                StringBuilder builder = new StringBuilder();
                BufferedReader br = new BufferedReader(
                        new InputStreamReader(conn.getInputStream(),"utf-8"));
                for (String s = br.readLine(); s != null; s = br.readLine()) {
                    builder.append(s);
                }
                br.close();
                return builder.toString();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    public static String queryPosmcc(String merchantNo){
        String sign=getSHA256Str("appid="+appid+"&module="+module+"&merchantNo="+merchantNo+"&appkey="+appkey);
        String url=apiurl+"?type=get&appid="+appid+"&module="+module+"&merchantNo="+merchantNo+"&sign="+sign;
        return get(url);
    }
}
//使用示例
QueryHelper.queryPosmcc("820521154110001");Python SDK
#!/usr/bin/python
# -*- coding: utf-8 -*-
import httplib2
import hashlib
from urllib.parse import urlencode #python3
#from urllib import urlencode #python2
apiurl='http://cha.ebaitian.cn/api/json'
appid='1000xxxx'
appkey='56cf61af4b7897e704f67deb88ae8f24'
module='getPosmccInfo'
merchantNo='820521154110001'
data='appid='+appid+'&module='+module+'&merchantNo='+merchantNo
sign_data=data+'&appkey='+appkey
# from Crypto.Cipher import AES
# from Crypto.Hash import SHA256
# 256
hash_256 = hashlib.sha256()
hash_256.update(sign_data.encode('utf-8'))
sign = hash_256.hexdigest()
postdata = urlencode({'appid':appid,'module':module,'merchantNo':merchantNo,'sign':sign})
url = apiurl+'?type=get&'+postdata
http = httplib2.Http()
response, content = http.request(url,'GET')
print(content.decode("utf-8"))Node.js SDK
方法一:以 POST 方式请求数据
//以 POST 方式提交
var http = require('http');  
var querystring = require('querystring');  
//参数设置
var appid = '1000xxxx';
var appkey = '56cf61af4b7897e704f67deb88ae8f24';
var module = 'getPosmccInfo';
//目标查询商户编号
var merchantNo='820521154110001';
//签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256
var sign = SHA256('appid='+appid+'&module='+module+'&merchantNo='+merchantNo+'&appkey='+appkey);
//这是需要提交的数据
var post_data = {
    appid: appid,  
    module: module,
    merchantNo: merchantNo,
    sign: sign
};  
var content = querystring.stringify(post_data);  
var options = {  
    hostname: 'cha.ebaitian.cn',  
    port: 80,  
    path: '/api/json',  
    method: 'POST',  
    headers: {  
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'  
    }  
};  
var req = http.request(options, function (res) {  
    console.log('STATUS: ' + res.statusCode);  
    console.log('HEADERS: ' + JSON.stringify(res.headers));  
    res.setEncoding('utf8');  
    res.on('data', function (chunk) {  
        console.log('BODY: ' + chunk);  
    //JSON.parse(chunk)
    });  
});  
req.on('error', function (e) {  
    console.log('problem with request: ' + e.message);  
});  
// write data to request body  
req.write(content);  
req.end();  
方法二:以 GET 方式请求数据
//以 GET 方式提交
var http = require('http');  
var querystring = require('querystring');  
//参数设置
var appid = '1000xxxx';
var appkey = '56cf61af4b7897e704f67deb88ae8f24';
var module = 'getPosmccInfo';
//目标查询商户编号
var merchantNo='820521154110001';
//签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256
var sign = SHA256('appid='+appid+'&module='+module+'&merchantNo='+merchantNo+'&appkey='+appkey);
//这是需要提交的数据
var data = {
    appid: appid, 
    module: module,
    merchantNo: merchantNo,
    sign: sign
};
var content = querystring.stringify(data);  
var options = {  
    hostname: 'cha.ebaitian.cn',  
    port: 80,  
    path: '/api/json?' + content,  
    method: 'GET'  
};  
var req = http.request(options, function (res) {  
    console.log('STATUS: ' + res.statusCode);  
    console.log('HEADERS: ' + JSON.stringify(res.headers));  
    res.setEncoding('utf8');  
    res.on('data', function (chunk) {  
        console.log('BODY: ' + chunk);
    });  
});  
req.on('error', function (e) {  
    console.log('problem with request: ' + e.message);  
});  
req.end();  
C# SDK
using System;
using System.Collections.Generic;
using System.Web;
using System.Net;
using System.Text;
public class getPosmccInfo{
    public static string getInfo(string appid, string appkey, string module, string mobile){
        string url = string.Format("http://cha.ebaitian.cn/api/json?type=get&appid={0}&module={1}&mobile={2}&sgin={3}", appid, module, mobile, sgin);
        using (WebClient client = new WebClient()){
            client.Encoding = Encoding.UTF8;
            return client.DownloadString(url);
        }
    }
}
string posmccInfo = getPosmccInfo.getInfo("1000xxxx", "getPosmccInfo", "820521154110001", "ecab4881ee80ad3d76bb1da68387428ca752eb885e52621a3129dcf4d9bc4fd4", Request.UserHostAddress);
Console.WriteLine(posmccInfo);
Response.Write(posmccInfo);JavaScript SDK
方法一:以 POST 方式请求数据
//使用 JQuery 请先加载最新的 JQuery 插件
//参数设置
var apiurl = 'http://cha.ebaitian.cn/api/json';
var appid = '1000xxxx';
var appkey = '56cf61af4b7897e704f67deb88ae8f24';
var module = 'getPosmccInfo';
//目标查询商户编号
var merchantNo='820521154110001';
//签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256
var sign = SHA256('appid='+appid+'&module='+module+'&merchantNo='+merchantNo+'&appkey='+appkey);
//提交数据
$.ajax({
    url:apiurl,
    type:'post',
    dataType:'json',
    data:{
        appid:appid,
        module:module,
        merchantNo:merchantNo,
        sign:sign
    },
    success:function(res){
        console.log(res);
    }
});方法二:以 GET 方式请求数据
//使用 JQuery 请先加载最新的 JQuery 插件
//参数设置
var apiurl = 'http://cha.ebaitian.cn/api/json';
var appid = '1000xxxx';
var appkey = '56cf61af4b7897e704f67deb88ae8f24';
var module = 'getPosmccInfo';
//目标查询商户编号
var merchantNo='820521154110001';
//签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256
var sign = SHA256('appid='+appid+'&module='+module+'&merchantNo='+merchantNo+'&appkey='+appkey);
//提交数据
$.ajax({
    url:apiurl,
    type:'post',
    dataType:'json',
    data:{
        appid:appid,
        module:module,
        merchantNo:merchantNo,
        sign:sign
    },
    success:function(res){
        console.log(res);
    }
});ASP SDK
'设置参数
dim apiurl, appid, appkey, module, merchantNo, sign
apiurl="http://cha.ebaitian.cn/api/json"
appid="1000xxxx'
appkey="56cf61af4b7897e704f67deb88ae8f24"
module="getPosmccInfo"
merchantNo="820521154110001"
'签名,SHA256 不可直接调用;函数参考地址:https://blog.csdn.net/yesoce/article/details/128546
sgin=SHA256("appid=&appid&"&module="&module&"&merchantNo="&merchantNo&"&appkey="&appkey)
'异步提交数据
function PostHTTPPage(url,data)
    dim Http 
    set Http=server.createobject("MSXML2.SERVERXMLHTTP.3.0")
    Http.open "POST",url,false
    Http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    Http.send(data) 
    if Http.readystate<>4 then 
    exit function 
    End if
    PostHTTPPage=bytesToBSTR(Http.responseBody,"UTF-8")
    set http=nothing 
    if err.number<>0 then err.Clear 
End function
'提交数据
dim postdata, strTest
postdata="appid=&appid&"&module="&module&"&merchantNo="&merchantNo&"&sign="&sign
strTest=PostHTTPPage(apiurl,postdata)
'返回结果
response.write(strTest)
response.end常见问题
API 接口参数为空
此错误返回 JSON 数据如下:
{
    "result":0,
    "description":"API接口参数为空",
    "flag":"appid:sign"
}解决方法:
1)请检查 appid 及 sign 是否为空;
2)确保 appid 是从官网获取到正确的接口授权;
3)确保 sign 计算生成是正确的。
API 接口参数无效
此错误返回 JSON 数据如下:
{
    "result":0,
    "description":"API接口参数无效",
    "flag":"appid"
}解决方法:
1)请检查 appid 是否正确;
2)确保 appid 是从官网获取到正确的接口授权。
API 接口授权已到期
此错误返回 JSON 数据如下:
{
    "result":0,
    "description":"API接口授权已到期",
    "flag":"end:2018-12-31 23:59:59"
}解决方法:
1)请检查 appid 对应接口授权的期限是否过期;
2)如果接口授权过期,请到官网更新(免费用户直接更新,无需续费)或续费(针对商业付费用户)。
签名错误
此错误返回 JSON 数据如下:
{
    "result":0,
    "description":"签名错误",
    "flag":"getPosmccInfo->sign"
}解决方法:
1)请检查 sign 签名计算是否正确;
2)签名 sign 根据公式 $sign=sha256(appid=$appid&module=getPosmccInfo&merchantNo=$merchantNo&appkey=$appkey) 生成;其中:appkey 为授权接口的 AppKey,请填写您在我要查官网上申请到的 AppKey 。
请求受限
此错误返回 JSON 数据如下:
{
    "result":0,
    "description":"请求受限",
    "flag":"getPosmccInfo->daylimit"
}解决方法:
1)授权接口已超出当前接口产品请求的最大限制;
2)请根据实际使用需求升级您的接口产品。
其他问题
如果您遇到其他的问题,请用以下方式联系我们,我们将为您提供 API 技术对接帮助。
请直接添加 QQ 技术交流群寻求我们帮助。
				 我要查API技术对接群①:
				 群号:821884327
				 扫码加入我要查API技术对接群①:
				