电商购物网站如何调用第三方支付平台(支付宝,财付通,盛付通等)

本文介绍了一个通用的第三方支付平台API集成流程,包括参数传递、加密验证及回调处理等关键技术环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

各个平台传递参数有所不同,流程基本是一致的。

通常第三方的支付平台都会有一个关于平台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);
}


以上是调用第三方支付平台的基本流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值