sqlserver 备份命令
2015-05-29 14:04
465 查看
各个平台传递参数有所不同,流程基本是一致的。
通常第三方的支付平台都会有一个关于平台api的开发指南,在里面介绍了需要传递参数,返回的参数。
首先是组装平台需要的参数,post到支付宝:
下面的逻辑就是对 notify_url(后台通知),return_url(前台通知页面)的处理了。支付平台处理完请求后,会返回处理结果请求服务器这2个链接。
前台return_url页面返回处理(后台notify_url的处理基本相同,直接在页面打印出结果)
以上是调用第三方支付平台的基本流程。
通常第三方的支付平台都会有一个关于平台api的开发指南,在里面介绍了需要传递参数,返回的参数。
首先是组装平台需要的参数,post到支付宝:
/** * 发送支付宝http支付报文 * @param payOrderData * @return * @throws Exception */ @RequestMapping("/**") public ModelAndView sendAlipayOrder(** ***,HttpServletRequest request) throws Exception { if("".equals(payOrderData.getOut_trade_no())&& "".equals(payOrderData.getCommodity_id()) && "".equals(payOrderData.getPrice()) && "".equals(payOrderData.getSubject()) && "".equals(payOrderData.getBody()) ){ throw new Exception("提交支付数据不完整!"); } /*---------------协议参数----------------------------*/ /** * 签名加密算法 */ String sign_type = "MD5"; /** * 交易过程中服务器后台处理通知的页面 * (通知对象是支付平台,告知是否处理成功) */ String notify_url = "http://.."; /** * 付完款后跳转的页面 要用 http://格式的完整路径 * (通知对象是用户,告知是否付款成功) */ String return_url = "http://.."; //省略。。。 //封装参数,发送到支付平台,需要将参数按照平台约定的方式进行加密,支付平台接收到参数后,会将参数加密通传递过来的加密对比,防止发送过程中URL被更改。 return new ModelAndView("**/**",map); }
下面的逻辑就是对 notify_url(后台通知),return_url(前台通知页面)的处理了。支付平台处理完请求后,会返回处理结果请求服务器这2个链接。
前台return_url页面返回处理(后台notify_url的处理基本相同,直接在页面打印出结果)
@RequestMapping(value="/***", method = RequestMethod.GET) public ModelAndView getAlipayReturn(HttpServletRequest request,HttpServletResponse response) throws Exception{ String mysign = AlipayNotify.GetMysign(params,key);//将返回的参数加密 String notify_id = request.getParameter("notify_id"); String responseTxt = AlipayNotify.Verify(notify_id,partnerId); String sign = request.getParameter("sign"); String trade_no = request.getParameter("trade_no"); //支付宝交易号 String total_fee = request.getParameter("total_fee"); //获取总金额 String trade_status = request.getParameter("trade_status"); //省略。。 if(mysign.equals(sign) && responseTxt.equals("true")){ if(trade_status.equals("TRADE_FINISHED") || trade_status.equals("TRADE_SUCCESS")){ //这里是对比签名无误,付款成功的处理,修改状态等等。。 } } //最好能记录下日志 ModelMap model=new ModelMap(); model.addAttribute("payState", return_status); return new ModelAndView("redirect:***",model); }
以上是调用第三方支付平台的基本流程。
相关文章推荐
- iBATIS sql(XML)中的大于、小于、like等符号写法
- DB2与oracle类型对比
- 关于sql server中的 jion,inner join, left join ,left outer join, right join,right outer join 的几点使用心得
- Redis配置文件详解(redis.conf)
- MySQL的慢SQL
- mongodb-manual-3.0.0 indexes2
- 在Hibernate里遇到Mysql的datetime类型怎么搞
- 使用DOS工具修复数据库发生的异常
- SQLite的简介
- SQL编程
- 在 MySQL 中查找含有目标字段的表
- 数据库update时切忌这样干
- MySQL实现SQLServer ROW_NUMBER() OVER ORDER BY
- Yahoo的mysql性能监控snmp服务设定
- Excel 中使用SQL 语句查询数据(六)-----IN 语句的应用
- 使用sqlmap中tamper脚本绕过waf
- 数据库范式(1NF 2NF 3NF BCNF)
- T-SQL语句中中括号([])的用法是什么,什么时候该用
- 优化SQL查询:如何写出高性能SQL语句
- 账号密码数据库加密说明