//
@ResponseBody
@RequestMapping(value = "red_user_pay")
public String fala_user_pay(ServletRequest request) throws Exception {
String userid = request.getParameter("user_id");
String money = request.getParameter("money");
String openid = request.getParameter("openid");
String content = request.getParameter("content");
String project_id = request.getParameter("project_id");
String signType = "MD5";
if (StringUtils.isEmpty(userid)) {
new ApiException(Constant.RETURNCODE_2, "falaid为空");
}
if (StringUtils.isEmpty(money)) {
new ApiException(Constant.RETURNCODE_2, "sn为空");
}
if (StringUtils.isEmpty(openid)) {
new ApiException(Constant.RETURNCODE_2, "openid为空");
}
User user = iUserService.findOne(Integer.valueOf(userid));
if (user == null) {
new ApiException(Constant.RETURNCODE_2, "user为空");
}
double s_money = Double.valueOf(money)/100.0;
// 记录日志
ProjectSupport support = new ProjectSupport(Integer.valueOf(userid), content, new Date(),
s_money, Integer.valueOf(project_id), user.getPhoto(), user.getName());
support.setState(0);
ScanPayResData bean = weixinPay(openid, 200,support);
iProjectSupportService.save(support);
String prepay_id = bean.getPrepay_id();
String appId = "wxd1c9560a2bf42bf0";
String timeStamp = new Date().getTime()+"";
String nonceStr = "5K8276ILTKCH16CQ2502SI8ZNMTM98VS";
String packages = "prepay_id="
+ prepay_id;
Map<String, Object> map = new HashMap<String, Object>();
map.put("appId", appId);
map.put("timeStamp", timeStamp);
map.put("nonceStr", nonceStr);
map.put("package", packages);
map.put("signType", signType);
String sign = Signature.getSign(map);
MapPaySign s = new MapPaySign(nonceStr, timeStamp, appId, signType, packages, sign);
return after(s);
}
public ScanPayResData weixinPay(String openid, Integer money, ProjectSupport support )
throws UnrecoverableKeyException, KeyManagementException, NoSuchAlgorithmException, KeyStoreException,
IOException, DocumentException, UnsupportedEncodingException {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
Calendar cal = Calendar.getInstance();
// cal.setTime(format.parse(nowDate));
cal.add(Calendar.DAY_OF_YEAR, +1);
String nextDate = format.format(cal.getTime());
Date date = new Date();
String s = format.format(date);
int six = (int) ((Math.abs(new Random().nextInt())) % 9000 + 1000);
String req_id = s + six;// 20位订单号
support.setOrderno(req_id);
// int money = (int) (taocan.getMoney() * 100);
ScanPayReqData scanPayReqData = new ScanPayReqData("zhifu", "state=123", req_id, money, "WEB", "192.168.10.101",
format.format(new Date()), nextDate, "http://hongshizi.tunnel.2bdata.com/red/red/red_paycallback", openid,
"JSAPI");
// String body = WXPay.requestScanPayService(scanPayReqData);
HttpsRequest r = new HttpsRequest();
String xml = XMLParse.unifiedorder(scanPayReqData.getAppid(), scanPayReqData.getAttach(),
scanPayReqData.getBody(), scanPayReqData.getMch_id(), scanPayReqData.getNonce_str(),
scanPayReqData.getNotify_url(), scanPayReqData.getOpenid(), scanPayReqData.getOut_trade_no(),
scanPayReqData.getSpbill_create_ip(), scanPayReqData.getTotal_fee() + "",
scanPayReqData.getTrade_type(), scanPayReqData.getSign(), scanPayReqData.getDevice_info(),
scanPayReqData.getTime_start(), scanPayReqData.getTime_expire());
String body = r.sendPost(Configure.UNIFIED_ORDER, xml);
System.err.println(body);
ScanPayResData bean = new ScanPayResData();
String sign = "";
//
SAXReader reader = new SAXReader();
Document document = reader.read(new ByteArrayInputStream(body.getBytes("utf-8")));
if (document != null) {
//
Element root = document.getRootElement();
System.err.println(document.getRootElement());
//
List<Element> elementList = root.elements();
//
for (Element e : elementList) {
System.err.println(e.getName() + "---------" + e.getText());
if ("return_code".equals(e.getName())) {//
bean.setReturn_code(e.getText());
}
if ("return_msg".equals(e.getName())) {//
bean.setReturn_msg(e.getText());
}
if ("appid".equals(e.getName())) {//
bean.setAppid(e.getText());
}
if ("mch_id".equals(e.getName())) {//
bean.setMch_id(e.getText());
}
if ("device_info".equals(e.getName())) {//
bean.setDevice_info(e.getText());
}
if ("nonce_str".equals(e.getName())) {//
bean.setNonce_str(e.getText());
}
if ("sign".equals(e.getName())) {//
// bean.setSign(e.getText());
sign = e.getText();
}
if ("result_code".equals(e.getName())) {//
bean.setResult_code(e.getText());
}
if ("prepay_id".equals(e.getName())) {//
bean.setPrepay_id(e.getText());
}
if ("trade_type".equals(e.getName())) {//
bean.setTrade_type(e.getText());
}
}
}
if (sign.equals(bean.getSign_2())) {// sign鏍¢獙鎴愬姛
}
return bean;
}
@ResponseBody
@RequestMapping(value = "red_user_pay")
public String fala_user_pay(ServletRequest request) throws Exception {
String userid = request.getParameter("user_id");
String money = request.getParameter("money");
String openid = request.getParameter("openid");
String content = request.getParameter("content");
String project_id = request.getParameter("project_id");
String signType = "MD5";
if (StringUtils.isEmpty(userid)) {
new ApiException(Constant.RETURNCODE_2, "falaid为空");
}
if (StringUtils.isEmpty(money)) {
new ApiException(Constant.RETURNCODE_2, "sn为空");
}
if (StringUtils.isEmpty(openid)) {
new ApiException(Constant.RETURNCODE_2, "openid为空");
}
User user = iUserService.findOne(Integer.valueOf(userid));
if (user == null) {
new ApiException(Constant.RETURNCODE_2, "user为空");
}
double s_money = Double.valueOf(money)/100.0;
// 记录日志
ProjectSupport support = new ProjectSupport(Integer.valueOf(userid), content, new Date(),
s_money, Integer.valueOf(project_id), user.getPhoto(), user.getName());
support.setState(0);
ScanPayResData bean = weixinPay(openid, 200,support);
iProjectSupportService.save(support);
String prepay_id = bean.getPrepay_id();
String appId = "wxd1c9560a2bf42bf0";
String timeStamp = new Date().getTime()+"";
String nonceStr = "5K8276ILTKCH16CQ2502SI8ZNMTM98VS";
String packages = "prepay_id="
+ prepay_id;
Map<String, Object> map = new HashMap<String, Object>();
map.put("appId", appId);
map.put("timeStamp", timeStamp);
map.put("nonceStr", nonceStr);
map.put("package", packages);
map.put("signType", signType);
String sign = Signature.getSign(map);
MapPaySign s = new MapPaySign(nonceStr, timeStamp, appId, signType, packages, sign);
return after(s);
}
public ScanPayResData weixinPay(String openid, Integer money, ProjectSupport support )
throws UnrecoverableKeyException, KeyManagementException, NoSuchAlgorithmException, KeyStoreException,
IOException, DocumentException, UnsupportedEncodingException {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
Calendar cal = Calendar.getInstance();
// cal.setTime(format.parse(nowDate));
cal.add(Calendar.DAY_OF_YEAR, +1);
String nextDate = format.format(cal.getTime());
Date date = new Date();
String s = format.format(date);
int six = (int) ((Math.abs(new Random().nextInt())) % 9000 + 1000);
String req_id = s + six;// 20位订单号
support.setOrderno(req_id);
// int money = (int) (taocan.getMoney() * 100);
ScanPayReqData scanPayReqData = new ScanPayReqData("zhifu", "state=123", req_id, money, "WEB", "192.168.10.101",
format.format(new Date()), nextDate, "http://hongshizi.tunnel.2bdata.com/red/red/red_paycallback", openid,
"JSAPI");
// String body = WXPay.requestScanPayService(scanPayReqData);
HttpsRequest r = new HttpsRequest();
String xml = XMLParse.unifiedorder(scanPayReqData.getAppid(), scanPayReqData.getAttach(),
scanPayReqData.getBody(), scanPayReqData.getMch_id(), scanPayReqData.getNonce_str(),
scanPayReqData.getNotify_url(), scanPayReqData.getOpenid(), scanPayReqData.getOut_trade_no(),
scanPayReqData.getSpbill_create_ip(), scanPayReqData.getTotal_fee() + "",
scanPayReqData.getTrade_type(), scanPayReqData.getSign(), scanPayReqData.getDevice_info(),
scanPayReqData.getTime_start(), scanPayReqData.getTime_expire());
String body = r.sendPost(Configure.UNIFIED_ORDER, xml);
System.err.println(body);
ScanPayResData bean = new ScanPayResData();
String sign = "";
//
SAXReader reader = new SAXReader();
Document document = reader.read(new ByteArrayInputStream(body.getBytes("utf-8")));
if (document != null) {
//
Element root = document.getRootElement();
System.err.println(document.getRootElement());
//
List<Element> elementList = root.elements();
//
for (Element e : elementList) {
System.err.println(e.getName() + "---------" + e.getText());
if ("return_code".equals(e.getName())) {//
bean.setReturn_code(e.getText());
}
if ("return_msg".equals(e.getName())) {//
bean.setReturn_msg(e.getText());
}
if ("appid".equals(e.getName())) {//
bean.setAppid(e.getText());
}
if ("mch_id".equals(e.getName())) {//
bean.setMch_id(e.getText());
}
if ("device_info".equals(e.getName())) {//
bean.setDevice_info(e.getText());
}
if ("nonce_str".equals(e.getName())) {//
bean.setNonce_str(e.getText());
}
if ("sign".equals(e.getName())) {//
// bean.setSign(e.getText());
sign = e.getText();
}
if ("result_code".equals(e.getName())) {//
bean.setResult_code(e.getText());
}
if ("prepay_id".equals(e.getName())) {//
bean.setPrepay_id(e.getText());
}
if ("trade_type".equals(e.getName())) {//
bean.setTrade_type(e.getText());
}
}
}
if (sign.equals(bean.getSign_2())) {// sign鏍¢獙鎴愬姛
}
return bean;
}