接收天猫奇门 做服务端

做服务端接收奇门的请求

在天猫的开放平台,做接口的时候…有些是需要天猫奇门回传回数据…所以做个例子…保存

如:qimen.alibaba.dchain.aoxiang.sign.seller.notify
aa
就是我们做服务端接收奇门的请求:

配置路由

在这里插入图片描述

写服务端

package net.shopxx.controller.intf;



import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;


import com.taobao.api.internal.util.WebUtils;


import net.sf.json.JSONObject;

import net.shopxx.util.LogUtils;
import net.shopxx.util.TaobaoSignUtil;
import net.shopxx.util.XMLTool;

@Controller("intftb")
@RequestMapping("/intf/tb")
public class intftb {


	
	@RequestMapping(value = "/notify", produces = MediaType.TEXT_XML_VALUE)
	public @ResponseBody String notify(@RequestBody String xmlData) {
		String result = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<response>\n" + "  <success>false</success>\n"
				+ "  <errorCode>sign-check-failure</errorCode>\n" + "  <errorMsg>Illegal request</errorMsg>\n"
				+ "</response>";
		ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder
				.getRequestAttributes();
		HttpServletRequest request = requestAttributes.getRequest();
		String ctype = request.getContentType();
		String charset = WebUtils.getResponseCharset(ctype);
		try {
			Map<String, String> queryMap = TaobaoSignUtil.getQueryMap(request, charset);
			
			String localSign = TaobaoSignUtil.signTopRequest(queryMap, xmlData, "签名秘钥",
					"md5");
			System.out.println("回传验签:" + localSign);
			String sign = request.getParameter("sign") == null ? "" : request.getParameter("sign");
			System.out.println("远程sign:" + sign);
			String reqcontent = JSONObject.fromObject(queryMap).toString();
			System.out.println("回传:" + reqcontent);
			System.out.println("回传主体:" + xmlData);
			
				result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<response>\n"
						+ "  <success>success</success>\n" + "  <errorCode>0</errorCode>\n"
						+ "  <errorMsg>成功</errorMsg>\n" + "  <retry>false</retry>\n" + "</response>";
			
				JSONObject reqcontentJson = JSONObject.fromObject(reqcontent);
				String msg = XMLTool.xml2JSON(xmlData);
				
				
				System.out.println("回馈:msg:"+msg);
				System.out.println("API:method:"+reqcontentJson.optString("method"));
				
				
				if (msg != null && !"".equals(msg)) {
					
					
				}
				return result;
			
		} catch (Exception e) {
			LogUtils.writeIntfErrorLog("验签异常", e);
		}
		return result;
	}


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值