global class WeChatUtil {
// 获取access_token的接口地址(GET)
//private String access_token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=CorpID&corpsecret=SECRET';
/* private static String sTextMsg(String touser,String agentid,String content){
String replyMSG = '<xml>' +
'<ToUser><![CDATA[{0}]]></ToUser>' +
'<AgentId><![CDATA[{1}]]></AgentId>' +
'<Content><![CDATA[{2}]]></Content>' +
'<MsgType>text</MsgType>' +
'<Safe>0</Safe>' +
'</xml>';
String[] arguments = new String[]{touser,agentid,content};
return String.format(replyMSG, arguments );
}*/
private static String sTextMsg(String touser,String agentid,String msgType,String content){
String jsonInput = '{\n' +
' "touser" :"'+touser+'",\n' +
' "agentid" :'+agentid+',\n' +
' "msgtype" : "'+msgType+'",\n' +
' "text" : { "content":"'+content+'"} ,\n' +
' "safe" : "0",\n' +
'}';
return jsonInput;
}
private static String getToken() {
String corpid=Label.WaChatCorpID;//wx85e258caf2f54c67
String corpsecret=Label.WeChatCorpSecret;//36QvfbRYFgGuPNVTl62IjrOvQVvmDGymqKbZjfD_6H070EqjpeBRzfC2Ai_nTg8E
String access_token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid='+corpid+'&corpsecret='+corpsecret+'';
String token = '';
Integer expires_in=0;
//发送http请求,需要在远程站点设置用设置访问的网址url,否则请求会失败
HttpRequest req = new HttpRequest();
req.setEndpoint(access_token_url );
req.setMethod('POST');
req.setTimeout(12000);
Http http = new Http();
HttpResponse res = http.send(req);
System.debug(res.getStatus()+'==============sms result========' +'|'+res.getStatusCode());
System.debug('==============sms result2========' +'|'+res.getBody());
// Parse JSON response to get all the totalPrice field values.
JSONParser parser = JSON.createParser(res.getBody());
while (parser.nextToken() != null) {
if ((parser.getCurrentToken() == JSONToken.FIELD_NAME) &&
(parser.getText() == 'access_token')) {
// Get the value.
parser.nextToken();
token= parser.getText();
System.debug('==============sms getToken========' +'|'+token);
}else if ((parser.getCurrentToken() == JSONToken.FIELD_NAME) &&
(parser.getText() == 'expires_in')) {
// Get the value.
parser.nextToken();
expires_in= parser.getIntegerValue();
System.debug('==============sms getToken========' +'|'+expires_in);
}
}
return token;
}
private static String httpRequest(String toUser,String agentId,String msgType,String content) {
String access_token_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN';
Integer errcode ;
String errmsg = '';
access_token_url=access_token_url.replace('ACCESS_TOKEN', getToken());
//发送http请求,需要在远程站点设置用设置访问的网址url,否则请求会失败
HttpRequest req = new HttpRequest();
req.setEndpoint(access_token_url);
// req.setHeader('X-PrettyPrint','true');
req.setMethod('POST');
// req.setHeader('Content-Type','application/json');
req.setTimeout(12000);
req.setBody(sTextMsg(toUser,agentId,msgType,content));
Http http = new Http();
HttpResponse res = http.send(req);
System.debug(res.getStatus()+'==============sms result========' +'|'+res.getStatusCode());
System.debug(access_token_url+'==============sms result2========' +'|'+res.getBody());
// System.debug('==============sms sTextMsg========' +'|'+sTextMsg('"ai.gh"','6','"helloWorld!"'));
// Parse JSON response to get all the field values.
/* JSONParser parser = JSON.createParser(res.getBody());
while (parser.nextToken() != null) {
if ((parser.getCurrentToken() == JSONToken.FIELD_NAME) &&
(parser.getText() == 'errcode')) {
// Get the value.
parser.nextToken();
errcode= parser.getIntegerValue();
System.debug('==============sms errcode========' +'|'+errcode);
}else if ((parser.getCurrentToken() == JSONToken.FIELD_NAME) &&
(parser.getText() == 'errmsg')) {
// Get the value.
parser.nextToken();
errmsg= parser.getText();
System.debug('==============sms errmsg========' +'|'+errmsg);
}
}*/
return res.getBody();
}
/*
*发送微信
*/
webservice static String sendWeChat(String toUser,String agentId,String msgType,String content) {
return httpRequest(toUser,agentId,msgType,content);
}
}