支付宝异步通知 java_java 支付宝支付 手机网站支付结果异步通知

对于手机网站支付产生的交易,支付宝会根据原始支付API中传入的异步通知地址notify_url,通过POST请求的形式将支付结果作为参数通知到商户系统。支付宝开发文档:https://docs.open.alipay.com/203/105286/这边博客讲的1.8后台通知支付结果 notify_urlimage.png这个环节的业务逻辑处理为:收到支付宝的回调结果通知,先进行签名校验,如果签名校...
摘要由CSDN通过智能技术生成

对于手机网站支付产生的交易,支付宝会根据原始支付API中传入的异步通知地址notify_url,通过POST请求的形式将支付结果作为参数通知到商户系统。

支付宝开发文档:https://docs.open.alipay.com/203/105286/

这边博客讲的1.8后台通知支付结果 notify_url

301b8d76b7fb

image.png

这个环节的业务逻辑处理为:收到支付宝的回调结果通知,先进行签名校验,如果签名校验结果是对的,然后进行自己的业务逻辑处理(比如辑比如更新订单支付信息成功,保存交易流水,修改订单状态);

当然支付宝的官方文档还推荐在验签通过之后还需要查询这个支付单号在支付宝服务器的支付结果是否为成功,以这个结果为准;然后再进行支付成功后的业务逻辑处理。主要是为了防止数据篡改和数据的幂等性处理。

项目中的具体代码实现:

controller层的处理:

/**

* @param request:

* @param response:

* @return java.lang.String

* @Description 支付宝回调

* @Author huangkeyuan

* @Date 16:24 2019-12-11

*/

@PostMapping("notify")

@ApiOperation("支付宝支付回调,修改订单支付状态")

public String aliPayCertNotify(HttpServletRequest request, HttpServletResponse response) throws IOException {

Map returnMap = new HashMap<>();

//获取支付宝POST过来反馈信息转换为Entry

Set> entries = request.getParameterMap().entrySet();

// 遍历

for (Map.Entry entry : entries) {

String key = entry.getKey();

StringBuffer value = new StringBuffer("");

String[] val = entry.getValue();

if (n

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值