codecamp

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

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

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

扫码体验

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,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }