1 概述

实现生成支付宝付款页面URL并跳转,其中付款金额、业务订单编号、订单标题等由业务表单提供,附在URL后面。支付宝付款页面根据业务参数信息生成二维码,当用户扫码支付后成功后,进行后续逻辑操作。

2 准备工作

2.1 注册商户

在使用支付宝在线支付功能之前,先到支付宝开放平台(https://open.alipay.com/)注册账户。

2.2 创建网页应用

根据支付宝开放平台指引,创建一个网页应用。

2.3 网页应用开发设置

2.3.1 接口加签方式设置

应用开发设置里,最主要是“接口加签方式设置”

点击后,弹出如下图:

点击 密钥工具 下载并安装“支付宝开放平台密钥工具”,然后打开,按如下图所示操作。

获得 应用公钥应用私钥

然后回到“接口加签方式”弹出网页,点击下一步,把在“支付宝开放平台密钥工具”里生成的应用公钥粘贴进去,如下图,点击【确认上传】

最后,页面跳转到 支付宝公钥生成并下载页面,复制好 支付宝公钥 备用。

至此,接口加签方式设置完成。

2.3.2 配置回调地址

支付宝支付的乐创者系统回调地址是:/lczServer/creater/source/!aliPayNotify
其中,lczServer是乐创者应用名。

2.3.3 服务器IP白名单

根据需要,配置服务器IP白名单,乐创者服务所在服务器的外网IP。

3 门户配置

管理员administrator登录乐创者门户,点击“第三方平台>支付宝开放平台”进行配置,如下图:

根据以上 “2.3.1接口加签方式设置” 章节获取的APPID应用私钥应用公钥支付宝公钥,相应填入。解密方式 选择 RSA2

4 使用

4.1 支付宝信息表结构说明

为了配合支付交易过程,需要在业务库建立一张支付宝支付信息表,以便记录每条支付记录信息,包括订单ID、支付金额、状态等。
该表表名和字段名已约定如下

-- 支付宝支付记录信息表
CREATE TABLE `ali_pay_info`  (
  `API_Trade_Id` varchar(64) NOT NULL COMMENT '商户订单ID,主键',
  `API_User_Id` varchar(45) NOT NULL,
  `API_User_Name` varchar(50) NULL DEFAULT NULL COMMENT '用户名称',
  `API_Total_Amount` varchar(20) NULL DEFAULT NULL COMMENT '缴费金额',
  `API_Return_Amount` varchar(20) NULL DEFAULT NULL COMMENT '阿里返回的缴费金额',
  `API_Pay_Account` varchar(64) NULL DEFAULT NULL COMMENT '支付用户支付宝账号',
  `API_Store_Account` varchar(64) NULL DEFAULT NULL COMMENT '商户账号',
  `API_User_Pay_Status` varchar(2) NULL DEFAULT NULL COMMENT '用户交易状态:0:交易预创建1:等待支付2:交易关闭,未支付3:支付成功4:支付状态未知',
  `API_Trade_Status` varchar(20) NULL DEFAULT NULL COMMENT '支付结果(查询阿里接口返回):WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款)',
  `API_Image_Url` varchar(100) NULL DEFAULT NULL COMMENT '图片地址',
  `API_Pay_Date` datetime NULL DEFAULT NULL COMMENT '用户支付时间',
  `API_Create_Date` datetime NULL DEFAULT NULL COMMENT '创建时间',
  `API_Update_Date` datetime NULL DEFAULT NULL COMMENT '修改时间',
  `API_Create_Id` varchar(64) NULL DEFAULT NULL COMMENT '创建人Id',
  `API_Update_Id` varchar(64) NULL DEFAULT NULL COMMENT '修改人Id',
  `API_Trade_Type` varchar(2) NULL DEFAULT NULL COMMENT '交易类型',
  `API_Pay_Type` varchar(2) NULL DEFAULT NULL COMMENT '支付类型 1:支付宝',
  PRIMARY KEY (`API_Trade_Id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

4.2 发起支付

乐创者提供了一个“在线支付”的超链接类型,在相关自定义按钮或事件里调用即可,如下图:

链接类型:在线支付
数据连接:支付信息表(ali_pay_info)所在的数据库连接
三个参数:分别为业务主键(即,支付订单的业务订单唯一ID)、订单标题、订单金额(单位元,小数点两位)。

最终效果如下图,点击行上自定义操作“立即支付”:

跳转支付宝支付界面,用支付宝扫码即可。

作者:fancy  创建时间:2023-06-25 16:30
最后编辑:林  更新时间:2025-04-24 11:27