B2C商城支付宝支付详解:H5支付、扫码支付与APP支付
前言
在前一篇文章 技术分享-商城篇-订单支付微信篇(十二) 中我们了解微信支付的相关过程和逻辑,接下来我们继续聊一下支付宝支付,说到第三方支付,支付宝算是国内最早的提供第三方使用支付平台了(银联支付除外),也是发展的最好的,涉及线上线下各个大小场景,已经属于国民级金融软件系统,只要是国内的智能手机,支付宝都是必备的软件,用户群体广大,所以我们在选择第三方支付的时候,都会默认优先选择支付宝,而支付环节是交易流程的核心部分,直接关系到用户体验和商家的资金安全。支付宝作为国内领先的第三方支付平台,为B2C商城提供了多种支付方式,包括H5支付、扫码支付和APP支付等。本文将从业务逻辑、技术架构、注意事项及数据安全等方向详细阐述这些支付方式,当然也不只是这些场景,还有对面付、小程序JSAPI支付等等,只是不在本篇文章阐述范围,我写的这个题材的文章,在前面文章中也说了,只是给各位一个思考的参照,为新人指出一个可以参考的方向。
一、业务逻辑
在我们通过系统下单,用户拉起支付,我们会根据不同的平台端,显示不同的支付渠道,若是我们不做控制,比如在H5端,我们显示app支付或者扫码支付,反之在其它端使用H5拉起支付,或者自己显示你所开发各端的支付,整个页面四五个支付宝,用户看着也很蒙,不知道该去用哪一个,这就很乱,别说用户体验了,这是属于半成品系统。所以我们首先要做就是场景隔离,用户从不同端过来,展示不同的场景的支付,但是虽说场景不同,选择支付方式也就不同,但是在我们的系统是这些应用场景是有很多共性的,所以我们先来了解它们通用逻辑
- 商户交易号:商户系统提交订单时,我们需要提供一个给到第三方支付平台的交易单号,便于在支付回调时重新找到用户发起支付订单
- 订单信息 :用户提交支付,除商户交易号,我们需要把本次支付的订单信息也通过接口推送到支付平台,如:商品名、图片、单价等
- 异步回调地址:支付完成,状态更新,回调地址可唯一,回调的支付信息基本一致
- 数据签名:在服务端和支付平台交互时,都会把信息通过密钥加密,再生成本次请求签名,提交到支付平台,换取支付平台返回的支付信息(JSAPI和APP支付除外,这两个场景按照官方提供支付SDK构建支付信息即可),这些都可以使用官方提供SDK进行调用处理
- 异步回调:上面有说到
异步回调地址
,但是异步回调逻辑,是保障你系统数据安全最重要一环,且可以按场景和支付平台,同步更新你系统的订单状态,后续开单张详聊
除以上的共通性,服务端的订单处理逻辑都是一样的,咱们根据实际情况进行处理即可。聊完共同性我们再聊分解各场景的支付步骤和逻辑,以下是一张H5支付流程图,其他场景可参考即可。
1. H5支付
H5支付是指用户在网页上直接通过支付宝完成支付的方式。其业务逻辑如下:
- 用户下单:用户在B2C商城中选择商品并下单。
- 生成订单:商城系统生成订单,并调用支付宝的H5支付接口。
- 页面跳转:用户浏览器跳转到支付宝的H5支付页面。
- 支付确认:用户在支付宝页面确认支付信息并完成支付。
- 支付结果通知:支付宝将支付结果通知给商城系统,商城系统更新订单状态。
2. 扫码支付
扫码支付分为电脑网站扫码支付和手机网站扫码支付两种。
-
电脑网站扫码支付:
- 商城在网页上展示支付二维码。
- 用户使用手机支付宝扫描二维码。
- 在支付宝APP中确认支付信息并完成支付。
- 支付宝将支付结果通知给商城系统。
-
手机网站扫码支付:
- 用户在手机浏览器中访问商城网站并选择支付。
- 商城生成支付二维码并展示。
- 用户使用手机支付宝扫描二维码并完成支付。
- 支付结果通知同上。
3. APP支付
APP支付是指用户在商城的APP内直接通过支付宝完成支付的方式。其业务逻辑与H5支付类似,但支付页面是在APP内嵌的WebView中展示,用户体验更为流畅。
二、技术架构
1. 接入流程
无论是H5支付、扫码支付还是APP支付,接入支付宝支付都需要遵循以下流程:
- 注册支付宝开放平台账号:获取应用ID(APPID)和商户ID(PID)。
- 配置密钥:生成RSA密钥对,并在支付宝开放平台配置公钥。
- 下载SDK:根据开发语言下载对应的支付宝SDK。
- 集成SDK:将SDK集成到商城系统中,并配置相关参数。
- 调用支付接口:根据业务需求调用支付宝提供的支付接口。
2. 系统架构
支付系统通常包括前端、后端和数据库三个部分:
- 前端:负责与用户交互,展示支付页面和支付结果。
- 后端:处理支付请求,与支付宝服务器进行通信,并更新订单状态。
- 数据库:存储用户信息、订单信息和支付流水等关键数据。
三、注意事项
1. 安全性
- 数据加密:采用SSL/TLS协议对支付过程中的敏感数据进行加密传输。
- 身份验证:确保支付请求来自合法用户,防止恶意攻击。
- 风险控制:实时监测异常支付行为,防止欺诈和恶意刷单。
2. 兼容性
- 浏览器兼容性:H5支付需要确保在不同浏览器上的兼容性。
- APP兼容性:APP支付需要确保在不同版本的操作系统和支付宝APP上的兼容性。
3. 用户体验
- 页面加载速度:优化支付页面的加载速度,减少用户等待时间。
- 支付流程:简化支付流程,提高支付成功率。
在支付过程中,为了确保交易的安全性、准确性和用户体验,需要注意以下多个方面的事项:
一、支付前准备
-
确认支付信息:在支付前,务必仔细核对支付金额、收款方信息(如商家名称、账号等)以及商品或服务的详细信息,确保与订单或合同内容一致。
-
选择安全支付方式:优先选择安全可靠的支付方式,如通过官方渠道或知名第三方支付平台进行支付,避免使用不明来源的支付链接或应用。
-
检查支付环境:确保支付时所使用的设备(如手机、电脑)和网络环境(如家庭Wi-Fi、移动网络)安全,避免在公共或不安全的网络环境下进行支付。
二、支付过程中
-
避免泄露个人信息:在支付过程中,不要随意向他人透露支付密码、验证码等敏感信息。对于要求提供个人信息的支付请求,应谨慎对待,确保来源可靠。
-
核对支付界面:在输入支付密码或进行其他支付操作时,务必仔细核对支付界面的网址、支付按钮等信息,防止被钓鱼网站或恶意软件欺骗。
-
开启支付验证:对于支持指纹支付、面部识别等生物识别技术的支付方式,建议开启相关验证功能,以提高支付安全性。
-
注意支付限额:根据自身需求和支付平台的规定,合理设置支付限额,避免因支付限额不足而导致支付失败或资金损失。
三、支付后处理
-
保存支付凭证:支付完成后,及时保存支付凭证(如支付截图、订单号等),以便后续查询和维权。
-
检查账户余额:支付后,及时检查支付账户余额或银行卡交易记录,确保支付金额已正确扣除且未发生异常交易。
-
关注交易状态:对于重要或大额交易,建议关注交易状态的变化情况,如有问题及时联系支付平台或商家客服进行处理。
五、总结
在B2B2C或者B2C商城中,第三方支付作为电商交易的重要环节,其安全性和用户体验直接关系到商城的成败。通过深入了解H5支付、扫码支付和APP支付的业务逻辑、技术架构、注意事项及数据安全等方面的内容,我们可以更好地设计和实现支付系统,为用户提供安全、便捷、高效的支付体验。同时,商家也需要不断关注支付技术的发展和变化,及时调整和优化支付系统,以适应市场的需求和变化。