package com.github.ouyangbob.wechat.qrcode;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.ouyangbob.http.HttpUtil;
/**
* ClientID: 10003
AppKey: 15632887
AppSecret:135e0b4125e1cgef0b86r5er56003edj
1、防伪查询http://www.4008863456.com:10055/HimarkingApi/QueryAntiCode
输入参数:
<trade version='1'>
<Head>
<ClientID>客户端ID(必填)</ClientID>
<AppKey>客户端的应用key(必填)</AppKey>
<AppSecret>签名字符串(必填)</AppSecret>
</Head>
<Body>
<AntiCode>防伪码(必填)</AntiCode>
<QueryType>查询方式(必填)(1网页查询;2语音查询;3短信查询;4二维码查询;5微信查询)</QueryType>
<QueryFrom>查询来源IP地址(必填)</QueryFrom>
<LanguageType>
返回结果的语言(可填) 为空和1为中文 2为英文 3为繁体
(默认只支持中文,是否支持其它语言请询问中选技术人员)
</LanguageType>
</Body>
</trade>
返回参数:
<trade version=’1’>
<ErrorCode>0</ErrorCode>
<Description>操作成功</Description>
<Body>
<QueryResult><!—查询结果 1正确结果 2已查询一次 3已查询多次 4查询黑名单 5错误结果 6 格式错误 7已被本机查询一次 8已被查询一次 9已被本机查询多次 10 已被查询多次 -->
</QueryResult>
<Result>查询结果说明</Result>
</Body>
</trade>
其中ErrorCode 为0代表操作成功,否则失败。
在会员积分系统中,只有当查询结果QueryResult为1或2或3时才可进行积分。
流程:先输入16位防伪码查询真伪,如果返回的是1或2或3的话,则可继续输入手机号码,用户输入手机号码后,提交,再调用下面的新增积分接口,传递3个参数:手机号码和之前输入的16位防伪码和操作的IP地址,调用进行积分,会返回对应的操作结果。
2、新增积分http://www.4008863456.com:10055/HimarkingApi/AddPoint
输入参数:
<trade version='1'>
<Head>
<ClientID>客户端ID(必填)</ClientID>
<AppKey>客户端的应用key(必填)</AppKey>
<AppSecret>签名字符串(必填)</AppSecret>
</Head>
<Body>
<MobileNo>会员手机号码(必填)</MobileNo>
<AntiCode>积分使用的16位防伪码(必填)</AntiCode>
<IpAddress>IP地址</IpAddress>
</Body>
</trade>
返回参数
<trade version=’1’>
<ErrorCode>0</ErrorCode>
<Description>操作成功</Description>
<Body>
<Code></Code>
<Point></Point>
<SumPoint ></SumPoint>
<LJSumPoint></LJSumPoint>
</Body>
</trade>
备注
Code:0 该防伪码不存在,不能积分。
Code:1 该防伪码是正品,已被积分。
Code:2 该防伪码是正品,本次消费可获积分:" + point + "分。当前可用积分:" + SumPoint + "分。累计积分:" + LJSumPoint + "分。
Code:3 您当天累计消费积分超过了上限,请改天再进行积分查询
* @author ouyangbotao
*
*/
public class CheckQRCodeUtil {
private static final Logger logger = LoggerFactory.getLogger(CheckQRCodeUtil.class);
public static final String CLIENTID="10003";
public static final String APPID="15632887";
public static final String APPSECRET="135e0b4125e1cgef0b86r5er56003edj";
public static final String CHECK_URL="http://www.4008863456.com:10055/HimarkingApi/QueryAntiCode";
public static String check(String antiCode,String formIp){
StringBuilder sb=new StringBuilder();
sb.append("<trade version='1'>");
sb.append("<Head>");
sb.append("<ClientID>10003</ClientID>");
sb.append("<AppKey>15632887</AppKey>");
sb.append("<AppSecret>135e0b4125e1cgef0b86r5er56003edj</AppSecret>");
sb.append("</Head>");
sb.append("<Body>");
sb.append("<AntiCode>");
sb.append(antiCode);
sb.append("</AntiCode>");
sb.append("<QueryType>5</QueryType>");
sb.append("<QueryFrom>");
sb.append(formIp);
sb.append("</QueryFrom>");
sb.append("<LanguageType>1</LanguageType>");
sb.append("</Body>");
sb.append("</trade>");
String content =HttpUtil.postBodyRequest(CHECK_URL, null, sb.toString());
String queryResult=StringUtils.substringBetween(content, "<QueryResult>", "</QueryResult>");
String result=StringUtils.substringBetween(content, "<Result>", "</Result>");
logger.info("queryResult:{}",queryResult);
logger.info("result:{}",result);
return result;
}
}