SpringMvc微信支付回調(diào)示例代碼
介紹
大家都知道微信支付的回調(diào)鏈接要求不能跟參數(shù),但又要接收返回的xml數(shù)據(jù)。我開始使用@RequestBody注解在參數(shù)上,希望能獲取xml數(shù)據(jù),測試失敗。最后使用HttpServletRequest去獲取數(shù)據(jù)成功了。
示例代碼
@RequestMapping("/weixinpay/callback")
public String callBack(HttpServletRequest request){
InputStream is = request.getInputStream();
String xml = StreamUtil.inputStream2String(is, "UTF-8")
/**
* 后面把xml轉(zhuǎn)成Map根據(jù)數(shù)據(jù)作邏輯處理
*/
}
/**
* InputStream流轉(zhuǎn)換成String字符串
* @param inStream InputStream流
* @param encoding 編碼格式
* @return String字符串
*/
public static String inputStream2String(InputStream inStream, String encoding){
String result = null;
try {
if(inStream != null){
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] tempBytes = new byte[_buffer_size];
int count = -1;
while((count = inStream.read(tempBytes, 0, _buffer_size)) != -1){
outStream.write(tempBytes, 0, count);
}
tempBytes = null;
outStream.flush();
result = new String(outStream.toByteArray(), encoding);
}
} catch (Exception e) {
result = null;
}
return result;
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望能對大家的學(xué)習(xí)或者工作帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
Spring實現(xiàn)Logback日志模板設(shè)置動態(tài)參數(shù)功能
本文介紹如何在Spring應(yīng)用中實現(xiàn)Logback日志模板的動態(tài)參數(shù)設(shè)置,通過設(shè)計traceId鏈路標(biāo)識,將其動態(tài)添加到日志輸出中,從而實現(xiàn)簡易的鏈路追蹤功能,感興趣的朋友跟隨小編一起看看吧2024-11-11
Mybatis之解決collection一對多問題(顯示的結(jié)果沒有整合到一起)
這篇文章主要介紹了Mybatis之解決collection一對多問題(顯示的結(jié)果沒有整合到一起),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
詳解Spring Cloud Consul 實現(xiàn)服務(wù)注冊和發(fā)現(xiàn)
這篇文章主要介紹了Spring Cloud Consul 實現(xiàn)服務(wù)注冊和發(fā)現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
Springboot結(jié)合Mybatis-Plus實現(xiàn)業(yè)務(wù)撤銷回滾功能
本文介紹了如何在Springboot結(jié)合Mybatis-Plus實現(xiàn)業(yè)務(wù)撤銷回滾功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12

