支付宝小程序 快速示例·线下买单

2020-09-16 15:00 更新

本示例仅支持企业支付宝账号。

线下买单功能可将小程序与线下服务场景连接起来,给线下服务行业带来极大便利。该功能可轻松实现查看商品列表、领取优惠券、查看优惠券、结算、付款、查看订单列表、申请退款等人们广为熟悉的消费场景。

扫码体验

img

效果示例

幻灯片1.PNG

功能接口

功能 接口
物料清单接口 /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 文件,并解压至本地。

使用步骤

未命名文件 (14).png

添加功能

  1. 登录 小程序开发中心,在 我的小程序 中,选择相应的小程序,进入该小程序详情页。

  1. 在小程序详情开发管理页面的 功能列表 中,点击右上角 添加功能 按钮,添加 小程序支付功能支付宝卡包功能。小程序支付功能需签约后生效,请点击功能列表最右侧操作栏 签约,完成产品签约流程后,状态显示为 审核中,预计在一个工作日内完成签约审核;审核通过状态显示为 已生效,即可调用小程序支付。

img

数据准备

在 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

img

若小程序后端服务部署在云应用上,参见 详解 Todo 示例

新建/打开项目

在 IDE 启动界面新建 开放能力 > 线下买单 模板项目,或者打开获取模板代码中下载的 zip 文件内容。

前端开发

将线下买单示例小程序 client > utils > api.js 文件中 API_HOST 修改为实际后端服务域名之后,即可开发小程序前端界面。

线下买单.png

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号