1.1. 接口域名说明
为了说明的方便我这里都假定接口域名是xxx.xxx.xxx。实际使用中如果是其他域名只需将相应域名替代xxx.xxx.xxx即可
1.2. format 参数说明
指定接口返回格式。主要包含三种格式:xml、json、php。如果未显式调用format参数,默认返回json格式。具体返回格式可查看具体接口的返回示例(为方便理解用的是GET方式,正式使用中请使用POST)
获取xml格式 http://xxx.xxx.xxx/Api/seller/api.php?format=xml&cid=1&pid=10000
获取json格式
http://xxx.xxx.xxx/Api/seller/api.php?format=json&cid=1&pid=10000
1.3. 接口访问权限
合作伙伴如果要访问接口至少要提供_pid和签名(签名是由授权码和参数生成)
1.3.1. pid 参数说明
每个接口都需要_pid参数,这是合作伙伴的编号,在此文档中有时叫合作伙伴id.
1.3.2. 签名参数
还需要签名来验证请求的合法性。签名生成规则:
md5( $authcode . '&p1=v1&p2=v2&p3=v3&' .$authcode );
md5: 加密算法,32位md5算法
$authcode: 授权码
p1=v1&p2=v2&p3=v3:传递给接口的参数。多个参数用&连接
注:
1. 所有参数(除_sig参数,注意是所有参数,而不是接口要求的参数)需要按照键名英文排好次序。
2. 参数要求:除_sig参数本身以外的所有其他参与请求接口的参数。
3. 其中的‘.’号表示连接符号,即连接多个字符串。请勿理解成可见的字符,如js中字符串连接符号‘+’
4. $authcode是授权码,(与_pid一起联系官方获取)。
5. 请求方式强制为POST。
php中生成签名示例:
分析下php脚本片段,对应java语言
Test.java
package com.xxx.client;
import com.wdletu.client.util.HttpClientUtils;
import org.json.JSONException;
import org.json.JSONTokener;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
/**
* Created by zhangmy on 2017/8/22.
*/
public class Test {
private static final String url = "http://demo.xxx.xxxx.com/Api/Seller/api.json";
private static final String autoCode = "111";//授权码
private static final String _pid = "4";//合作伙伴id
public s