支付宝小程序 快速示例·线下买单
本示例仅支持企业支付宝账号。
线下买单功能可将小程序与线下服务场景连接起来,给线下服务行业带来极大便利。该功能可轻松实现查看商品列表、领取优惠券、查看优惠券、结算、付款、查看订单列表、申请退款等人们广为熟悉的消费场景。
扫码体验
效果示例
功能接口
功能 | 接口 |
---|---|
物料清单接口 | /alipay/demo/goodsList |
下单接口 | /alipay/demo/userOrder |
支付接口(小程序前端调用 my.tradePay 接口完成支付,并调用后端接口核销优惠券) | my.tradePay |
订单列表接口 | /alipay/demo/userOrderList |
退款接口 | /alipay/demo/alipayTradeRefund |
领券接口(Demo 中使用之前创建好的模板发券,模板申请接口一起在后端代码 alipayPassTemplateAdd 方法中) | /alipay/demo/alipayPassInstanceAdd |
用户券列表接口( Demo 中使用自己维护的券列表,在支付宝APP的卡包中同样可以看到对应的券) | /alipay/demo/userCard |
用户券核销接口 | /alipay/demo/alipayPassInstanceUpdate |
前提条件
获取模板代码
下载 线下买单 Demo.zip 文件,并解压至本地。
使用步骤
添加功能
- 登录 小程序开发中心,在 我的小程序 中,选择相应的小程序,进入该小程序详情页。
- 在小程序详情开发管理页面的 功能列表 中,点击右上角 添加功能 按钮,添加 小程序支付功能、支付宝卡包功能。小程序支付功能需签约后生效,请点击功能列表最右侧操作栏 签约,完成产品签约流程后,状态显示为 审核中,预计在一个工作日内完成签约审核;审核通过状态显示为 已生效,即可调用小程序支付。
数据准备
在 sample 数据库中,新建表 user_pay。
USE sample;
CREATE TABLE `user_pay` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`trade_no` varchar(200) DEFAULT NULL,
`user_id` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
在 sample 数据库中,新建表 user_card。
USE sample;
CREATE TABLE `user_card` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` varchar(200) DEFAULT NULL,
`card_id` varchar(200) DEFAULT NULL,
`card_status` varchar(200) DEFAULT NULL,
`serial_number` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
在 sample 数据库中,新建表 user_order。
USE sample;
CREATE TABLE `user_order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`out_trade_no` varchar(200) DEFAULT NULL,
`user_id` varchar(200) DEFAULT NULL,
`card_id` varchar(200) DEFAULT NULL,
`goods_detail` text,
PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
在 sample 数据库中,新建表 goods_info。
USE sample;
CREATE TABLE `goods_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`goods_name` varchar(200) DEFAULT NULL,
`goods_type` varchar(200) DEFAULT NULL,
`goods_price` varchar(200) DEFAULT NULL,
`goods_describe` varchar(200) DEFAULT NULL,
`goods_num` varchar(200) DEFAULT NULL,
`sell_num` varchar(200) DEFAULT NULL,
`like_num` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
后端开发
打开 server > src > main > resources > application.properties 文件,填入服务运行所需的参数。
#应用的私钥,需要保管好,应用的公钥存储在支付宝服务端
alipay.appconfig.privatekey=
#支付宝提供给这个应用的公钥,私钥存储在支付宝服务端中
alipay.appconfig.publickey=
#开放平台申请应用的Id
alipay.appconfig.appid=
spring.datasource.url=jdbc:mysql://${demo.mysql.address}:3306/sample?useUnicode=true&characterEncoding=utf8
#数据库用户名称
spring.datasource.username=admin
#数据库用户密码
spring.datasource.password=
#数据库地址,由于数据库跟应用服务在同一个服务器,所以在服务器上运行时可以设值为 localhost
demo.mysql.address=localhost
若小程序后端服务部署在云应用上,参见 详解 Todo 示例。
新建/打开项目
在 IDE 启动界面新建 开放能力 > 线下买单 模板项目,或者打开获取模板代码中下载的 zip 文件内容。
前端开发
将线下买单示例小程序 client > utils > api.js 文件中 API_HOST
修改为实际后端服务域名之后,即可开发小程序前端界面。