위챗 결제 자바 버전 V3 데이터 합법성 확인(Deom)

1.1 위챗 리셋 데이터 분석

InputStream inStream = request.getInputStream();
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inStream.read(buffer)) != -1) {
outSteam.write(buffer, 0, len);
}
outSteam.close();
inStream.close();
/**  notify_url XML  */
String result = new String(outSteam.toByteArray(), "utf-8");
result 결과는 위챗에서 반환된 XML 데이터입니다.
1.2 위챗에서 반환된 XML 데이터 분석

/**
*  XML 
*  Map 
* dom4j XML, 。 , 
* @param strXML
* @return
* @throws DocumentException 
*/
@SuppressWarnings("rawtypes")
public static SortedMap<String, String> dom4jXMLParse(String strXML) throws DocumentException {
SortedMap<String, String> smap = new TreeMap<String, String>();
Document doc = DocumentHelper.parseText(strXML);
Element root = doc.getRootElement();
for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
Element e = (Element) iterator.next();
smap.put(e.getName(), e.getText());
}
return smap;
}
smap으로 값을 가져온 질서정연한 맵 형식의 데이터를 되돌려줍니다.get (필드 이름) 에서 데이터를 가져옵니다.
1.3 위챗 반환 서명의 합법성 검증

/**
*  V3 , : a-z , 
*  SortedMap 
*  
* @param smap
* @param apiKey  
* @return  
*/
@SuppressWarnings("rawtypes")
public static boolean isWechatSign(SortedMap<String, String> smap,String apiKey) {
StringBuffer sb = new StringBuffer();
Set es = smap.entrySet();
Iterator it = es.iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
String k = (String) entry.getKey();
String v = (String) entry.getValue();
if (!"sign".equals(k) && null != v && !"".equals(v) && !"key".equals(k)) {
sb.append(k + "=" + v + "&");
}
}
sb.append("key=" + apiKey);
/**   */
String sign = MD5Util.MD5Encode(sb.toString(), "utf-8").toUpperCase();
/**   */
String validSign = ((String) smap.get("sign")).toUpperCase();
return validSign.equals(sign);
}
개인 건의: 위챗 서명의 합법성을 검증하기 전에 위챗이 돌아오는 return_code 및result_코드가 성공적인가?
위에서 말한 것은 여러분에게 소개된 위챗 결제 자바 버전 V3 검증 데이터의 합법성(Deom)입니다. 여러분에게 도움이 되었으면 합니다. 만약에 궁금한 것이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 여러분에게 회답할 것입니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기