电商项目支付宝支付实战

一、支付宝接入核心基础知识点

1.1 第三方支付接入背景

国内拥有支付牌照的企业仅两百余家,多数企业需接入第三方支付实现支付能力,主流第三方支付包含支付宝、云闪付、和包支付、翼支付等,本次电商项目选用支付宝作为接入方。

1.2 支付宝开放平台体系

支付宝提供两大服务开放平台,技术接入核心使用支付宝开放平台 (https://open.alipay.com/) ,商家管理使用支付宝商家中心 (https://b.alipay.com/page/portal/home)。开放平台提供丰富的支付接入场景,本次电商项目核心采用当面付,其他常见场景包括 APP 支付、手机 / 电脑网站支付、刷脸付、周期扣款等。

1.3 当面付核心场景

当面付包含两种典型支付模式,电商项目选用商家出码,用户扫码支付模式:

  1. 付款码支付:用户出示付款码,商家扫码收款;
  2. 扫码支付:商家生成收款二维码,用户支付宝扫码完成支付。

1.4 支付宝沙箱环境 vs 正式环境

对比维度 沙箱环境 正式环境
核心用途 接口开发、功能联调的模拟环境,免交易手续费 生产环境,真实交易,按笔收取手续费
PID/APPID 获取 平台直接提供测试数据,定期变更 商家中心申请 PID,开放平台创建应用获取 APPID,需绑定
产品签约 默认完成核心产品签约 需单独对支付产品进行签约
接口兼容性 与正式环境接口不完全一致 真实业务接口,需单独测试验收
配套工具 提供沙箱版支付宝 APP(https://open.alipay.com/develop/sandbox/tool 使用官方正式支付宝 APP
核心操作 无需提交资料、审批 需提交企业资料,完成多环节审批

关键绑定规则

  • 1 个 PID 可绑定多个 APPID,1 个 APPID 仅能绑定 1 个 PID;
  • APPID 绑定后暂不支持解绑;
  • 操作绑定的支付宝账号需与 APPID 对应的开发者账号一致。

1.5 支付宝加密安全机制

采用RSA 非对称加密 ,且为双向非对称加密 安全机制,保障业务请求报文的安全性,密钥生成需使用支付宝官方密钥生成工具 (https://opendocs.alipay.com/common/02kipl)。

加签类型 :支持 RSA (SHA1withRsa)、RSA2 (SHA256withRsa),项目中选用RSA2(安全性更高)。

二、Java 接入支付宝当面付实战步骤

2.1 开发准备

  1. 下载支付宝官方 SDK+Demo(项目提供整合当面付 + 电脑网站支付的 AlipayDemo);
  2. 下载沙箱版支付宝 APP 并安装;
  3. 生成应用公私钥对,将应用公钥上传至支付宝开放平台,保存应用私钥;
  4. 从沙箱环境获取支付宝公钥、PID、APPID,沙箱环境网关地址https://openapi.alipaydev.com/gateway.do

2.2 配置文件修改

核心配置文件为zfbinfo.properties,电脑网站支付配置在com.example.demo.config.AlipayConfig,需配置核心参数:

参数名 含义 配置要求
private_key 应用私钥 自己保存的应用私钥,与上传的公钥成对
public_key 应用公钥 上传至支付宝的应用公钥
alipay_public_key 支付宝公钥 沙箱 / 正式环境平台获取
sign_type 签名类型 项目配置为 RSA2
app_id 应用 ID 沙箱 / 正式环境获取
pid 商家账户 ID 沙箱 / 正式环境获取
open_api_domain 请求网关地址 沙箱环境为https://openapi.alipaydev.com/gateway.do
max_query_retry/query_duration 当面付查询次数 / 间隔 自定义,示例为 5 次 / 5000 毫秒

2.3 代码修改与运行

  1. 启动类为当面付模块的Main.java,修改 435 行二维码生成路径,解除二维码生成代码的注释;
  2. 手动创建二维码保存的本地目录(如示例中的 D:/alipay/);
  3. 执行Main.java,预下单成功会打印日志(code:10000 表示成功),并在指定目录生成二维码图片。

2.4 测试与验证

  1. 使用沙箱版支付宝 APP扫描生成的二维码完成支付;
  2. 沙箱环境控制台查看买家 / 卖家账户余额变化,确认交易是否成功;
  3. 体验 Demo 中查询、退货等其他业务操作。

预下单成功日志特征 :返回qr_code(二维码链接)、out_trade_no(商户订单号),签名sign等核心参数。

三、电商项目支付流程设计

3.1 核心技术方案

采用RocketMQ 事务消息 实现订单确认机制,完成订单超时回退功能,解决用户下单后未支付的订单资源占用问题。

3.2 当面付业务数据流转

相关推荐
Trouvaille ~1 小时前
【Linux】epoll 深度剖析:高性能 IO 多路复用的终极方案
linux·运维·服务器·c++·epoll·多路复用·io模型
运维管理1 小时前
H3C交换机Hybrid端口配置与VLAN理解-学习
运维·网络·学习
Coder_Boy_2 小时前
Java高级_资深_架构岗 核心知识点——高并发模块(底层+实践+最佳实践)
java·开发语言·人工智能·spring boot·分布式·微服务·架构
yy.y--2 小时前
Java线程实现浏览器实时时钟
java·linux·开发语言·前端·python
笨蛋不要掉眼泪2 小时前
Sentinel 流控规则详解:三种模式与三种效果实战指南
java·jvm·数据库·后端·sentinel
echoVic2 小时前
给 Agent Skill 装上「黑匣子」:STOP 可观测性协议设计与实现
java·javascript
阿乐艾官2 小时前
【K8s思维导图及单节点容器启动流程】
java·容器·kubernetes
再难也得平2 小时前
[LeetCode刷题]1.两数之和(java题解)
java·算法·leetcode
暴力求解2 小时前
Linux---进程(九)进程控制
linux·运维·服务器