支付宝生成二维码在本地测试正常,放到Tomcat服务器上总是报异常?
- 列表项目
是服务器的tomcat哪块的配置不对么
这是生成二维码的代码
public String qrPay(Yyopregist_PC yy) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//逾期时间
String time_expire= sdf.format(System.currentTimeMillis()+24*60*60*1000);
StringBuilder sb = new StringBuilder();
sb.append("{\"out_trade_no\":\"" + yy.getOutTradeNo() + "\",");
sb.append("\"total_amount\":\""+yy.getMoney()+"\",\"discountable_amount\":\"0.00\",");
sb.append("\"subject\":\""+yy.getPayName()+"\",\"body\":\"\",");
sb.append("\"goods_detail\":[{\"goods_id\":\""+yy.getOutTradeNo() +"\",\"goods_name\":\""+yy.getPayName()+"\",\"goods_category\":\"\",\"price\":\""+yy.getMoney()+"\",\"quantity\":\"1\"},{\"goods_id\":\""+yy.getOutTradeNo()+"\",\"goods_name\":\""+yy.getPayName()+"\",\"goods_category\":\"\",\"price\":\""+yy.getMoney()+"\",\"quantity\":\"1\"}],");
sb.append("\"operator_id\":\"\",\"store_id\":\"\",\"terminal_id\":\"\",");
sb.append("\"time_expire\":\""+time_expire+"\"}");
logger.info("支付宝生成二维码的参数"+sb.toString());
// AlipayClient alipayClient = AlipayAPIClientFactory.getAlipayClient();
AlipayClient alipayClient = AlipayAPIClientFactory.getAlipayClientRSA2();
// 使用SDK,构建群发请求模型
AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
request.setBizContent(sb.toString());//plus.reallycare.cn/sdey_pc
request.setNotifyUrl(url+"/backend/api/v1/taizhouPcBookingOrder/alipayNotify");
// request.putOtherTextParam("ws_service_url", "http://unitradeprod.t15032aqcn.alipay.net:8080");
AlipayTradePrecreateResponse response = null;
try {
// 使用SDK,调用交易下单接口
logger.info("支付宝生成二维码的包含回调的参数"+request);
response = alipayClient.execute(request);
logger.info("支付宝生成二维码的body为:"+response.getBody());
logger.info("支付宝生成二维码得到成功:"+response.isSuccess()+"");
logger.info("支付宝生成二维码的返回信息为:"+response.getMsg());
// 这里只是简单的打印,请开发者根据实际情况自行进行处理
if (null != response && response.isSuccess()) {
if (response.getCode().equals("10000")) {
logger.info("商户订单号:"+response.getOutTradeNo());
logger.info("二维码值:"+response.getQrCode());//商户将此二维码值生成二维码,然后展示给用户,用户用支付宝手机钱包扫码完成支付
return response.getQrCode();
//二维码的生成,网上有许多开源方法,可以参看:http://blog.csdn.net/feiyu84/article/details/9089497
} else {
//打印错误码
logger.info("错误码:"+response.getSubCode());
logger.info("错误描述:"+response.getSubMsg());
}
}
} catch (AlipayApiException e) {
e.printStackTrace();
logger.info("错误描述:"+e.getErrMsg());
logger.info("支付宝生成二维码接口进入异常:---"+e.getMessage()+"====异常case为===="+e.getCause());
}
return null;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
贴个工具类给你:
------------------补充
可以试试通过设置tomcat下conf文件夹的server.xml文件,对请求超时时间进行设置。
你最后一个是socketTimeoutException,优先考虑下网络问题,比如内外网,防火墙,是否将一些特殊端口的请求拦截了
尝试加大timeout时间