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; } }