黑马程序员技术交流社区

标题: 【技术笔记】【杭州校区】在线支付介绍 [打印本页]

作者: 小江哥    时间: 2018-10-24 21:02
标题: 【技术笔记】【杭州校区】在线支付介绍
两种不同的支付方式
方式一:
1、预支付    根据支付平台给我们的请求地址并携带需要的参数在后端发起支付申请,会返回给我们一条支付地址。
2、发起支付    后台在收到支付地址以后,返回给前端,前端向支付平台发起支付,用户弹出支付页面。
3、支付平台回调      在支付成功以后,支付平台会进行回调,告诉后端用户是否已经支付成功。如果支付成功,更新订单。
方式二:
1、发起支付    根据支付平台给我们的请求地址并携带需要的参数拼成支付链接,返回给前端,前端向支付平台发起支付,用户弹出支付页面。
2、支付平台回调      在支付成功以后,支付平台会进行回调,告诉后端用户是否已经支付成功。如果支付成功,更新订单。

注意事项:
1、拼接支付请求包括但不限于商户ID、商户密钥、支付金额(往往以分为单位)、用户IP、商品名称、商品详情、GET回调地址、POST回调地址等,部分参数也会要求进行MD5加密拼接进支付链接,使用MD5Util工具类即可。
2、在开发前,支付平台会为我们提供开发文档,依照开发文档完成代码即可。支付平台为我们提供的开发文档主要包括付款申请、退款申请、查询申请等,实际开发中付款申请应用的最多。
3、支付平台在支付完成后回调后端,如果后端不回复支付平台或者因为网络原因没有及时收到后端的回复,支付平台会重复回调后端,这个时候要防止重复处理业务逻辑。
4、不排除出现支付平台不回调后端的情况,这个时候,我们不知道用户到底有没有支付成功,这时只能通过查询公司在支付平台的账户由客服进行处理。
5、大部分支付平台会同时向后端发起GET请求和POST请求,但要以POST为准,GET请求大部分用来重定向到前端页面。可能会出现POST请求没有发送或者GET请求
没有发送或者全部没有发送的情形,并且是不可控的。
6、一般情况下,只能用POST请求返回的结果处理业务逻辑,而不是GET。如果GET请求先请求后端并重定向给前端支付成功,而支付平台没有发送POST请求,
这个时候,我们返回给前端的信息是错误的,只能由客服处理。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2