/**
* 支付流程
*/
@RequestMapping(value="/appwxxaidan",produces = "application/json;charset=utf-8")
@ResponseBody
public synchronized String appwxxaidan(HttpServletRequest request,HttpServletResponse response,String OPENID,String SW_COOPERATORSABOUT_ID) throws Exception{
PageData pd = new PageData();
pd = this.getPageData();
OrderInfo order = new OrderInfo();
order.setAppid(WeiappConfig.getAppid());
order.setMch_id(WeiappConfig.getMch_id());
order.setNonce_str(SW_COOPERATORSABOUT_ID);
order.setBody(SW_COOPERATORSABOUT_ID);
order.setOut_trade_no(RandomStringGenerator.getRandomStringByLength(32));
order.setTotal_fee(new Double(Double.parseDouble(cooperatorsabout.get("SWCOA_ALLMONEY").toString())*100).intValue());
order.setSpbill_create_ip("123.207.136.182");
order.setNotify_url("填写回调地址/appwxpayresult.do");
order.setTrade_type("JSAPI");
order.setOpenid(OPENID);
order.setSign_type("MD5");
//生成签名
String sign = Signature.getSign(order);
order.setSign(sign);
String result = HttpRequest.sendPost("https://api.mch.weixin.qq.com/pay/unifiedorder", order);
System.out.println(result);
XStream xStream = new XStream();
xStream.alias("xml", OrderReturnInfo.class);
OrderReturnInfo returnInfo = (OrderReturnInfo)xStream.fromXML(result);
System.out.println(returnInfo.toString());
System.out.println("-----------------------");
JSONObject json = new JSONObject();
json.put("prepay_id", returnInfo.getPrepay_id());
return json.toString();
}
/**
* 再签名
* @param request
* @param prepay_id
* @return
* @throws Exception
*/
@RequestMapping(value="/appwxrepeatsign",produces = "application/json;charset=utf-8")
@ResponseBody
public String appwxrepeatsign(HttpServletRequest request,String prepay_id) throws Exception{
SignInfo signInfo = new SignInfo();
signInfo.setAppId(WeiappConfig.getAppid());
long time = System.currentTimeMillis()/1000;
signInfo.setTimeStamp(String.valueOf(time));
signInfo.setNonceStr(RandomStringGenerator.getRandomStringByLength(32));
signInfo.setRepay_id("prepay_id="+prepay_id);
signInfo.setSignType("MD5");
//生成签名
String sign = Signature.getSign(signInfo);
JSONObject json = new JSONObject();
json.put("timeStamp", signInfo.getTimeStamp());
json.put("nonceStr", signInfo.getNonceStr());
json.put("package", signInfo.getRepay_id());
json.put("signType", signInfo.getSignType());
json.put("paySign", sign);
System.out.println("再签名成功-----------------------------------------------------------");
return json.toString();
}
/**
* 支付回调
* @param request
* @param response
* @return
* @throws Exception
*/
@RequestMapping(value="/appwxpayresult",produces = "application/json;charset=utf-8")
@ResponseBody
public String appwxpayresult(HttpServletRequest request, HttpServletResponse response) throws Exception{
PageData pd = new PageData();
pd = this.getPageData();
System.out.println("----------------------------------进入回调-------------------------------");
String reqParams = StreamUtil.read(request.getInputStream());
response.setContentType("text/xml");
XStream xStream = new XStream();
xStream.alias("xml", Wxreturn.class);
String returnxml="<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
Wxreturn wxreturn = (Wxreturn)xStream.fromXML(reqParams);
String noncestr=wxreturn.getNonce_str();
String openid=wxreturn.getOpenid();
int total_fee=wxreturn.getTotal_fee();
if(wxreturn.getReturn_code().equals("SUCCESS")){
if(wxreturnService.findById(noncestr)==null){
wxreturnService.save(wxreturn);
//支付成功后执行操作
}
}
return returnxml;
}
轻青柠
- 粉丝: 22
- 资源: 3
最新资源
- 永磁同步电机(pmsm)模型预测控制(MPC)matla b simulink仿真模型,有PI矢量控制,直接预测控制(有限集模型预测控制)(这个其中包括做了单矢量和双矢量或者可以成为三矢量的有限集预测
- Google Chrome浏览器ChromeDriver驱动下载(Chrome版本:132.0.6834.84)win64
- Google Chrome浏览器ChromeDriver驱动下载(Chrome版本:132.0.6834.84)win32
- 从0到1搭建推荐系统 - 数据驱动的算法与架构设计(带数据集)
- 汇川H3U标准程序,程序有本体脉冲控制的三轴定位,有总线控制的汇川伺服定位,轴点动,回零,相对定位绝对定位,程序结构清晰,分模块控制,是工控者学习的好案例
- 从0到1搭建推荐系统 - 数据驱动的算法与架构设计(带数据集)
- S7-200Smart 恒压供水程序样例+485通讯样例
- 基于simulink三自由度汽车操纵模型(侧向,侧倾,横摆)带数据参数,有详细公式文档 具有特殊性,发出不 哦(高于或等于MATLAB 2016a版本的都可打开模型)
- C++编写,qt框架,windows串口调试助手,多线程运行,性能好,效率高,不丢数据,保证代码质量
- 从0到1搭建推荐系统 - 数据驱动的算法与架构设计(带数据集)
- . NET C# WPF图书管理系统源码 .net C# WPF图书管理系统源码 自己开发,纯源码 主要技术:C#、基于wpf开发、sql server数据库的增删改查 源码特点:代码完整规范,采
- 西门子Smart200和台达ⅤFD一M系列变频器通讯程序 Smart和三菱E700或D7O0变频器通讯程序,程序带注释,包括接线图纸,变频器参数设置,全都有,拿到即可以用,节约开发时间
- ofdm 水声通信 qpsk fpga
- COMSOL手性超材料文献模拟模型 计算左右旋圆偏振下的吸收、反射、透射率(材料参数未与文献一致 趋势吻合)
- 昆仑通态MCGS与3台力士乐VFC-x610变频器通讯程序 实现昆仑通态触摸屏与3台力士乐VFC-x610变频器通讯,程序稳定可靠 器件:昆仑通态TPC7062KD触摸屏,3台力士乐VFC-x610变
- Unity3d 基于UniStorm插件和xx天气API实现实时天气系统源码工程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈