下单页 js-sdk
下单页 sdk
const { getData, pageData, events, getProcess } = window.youzanyunbridge;
全局数据 (getData)
1. 店铺信息
/**
* 店铺信息
* @typedef {Object} Shop
* @property {Number|String} kdtId 店铺id
*/
const shop = getData('shop');
2. 用户信息
/**
* 用户信息
* @typedef {Object} User
* @property {String} nickName 用户昵称
* @property {Number} gender 用户性别
* @property {String} avatar 用户头像链接
* @property {String} mobile 手机号码
* @property {String} userOpenId 用户唯一id
*/
const user = getData('user');
页面数据 (pageData)
// 用户客户端环境 *可上下滑动查看*
env: {
platform: 'mobile'
},
// 当前配送信息
delivery: {
expressType: 'express', // 配送方式
address: {
addressDetail: '翠苑街道黄龙万科中心', // 地址详细
areaCode: '', // 区号
country: '中国', // 国家
province: '浙江省', // 省份
city: '杭州市', // 市
county: '西湖区', // 县/区
lat: '', // 维度
lon: '', // 经度
recipients: '张某某', // 收货人
tel: '156xxxxxxxx' // 收货人手机号
},
selfFetch: {
// 自提点
shop: {
addressDetail: '', // 地址详细
area: '',
province: '', // 省份
city: '', // 市
county: '', // 县/区
lat: '', // 维度
lng: '', // 经度
name: '自提点名称', // 自提点名称
tel: '自提点联系电话', // 自提点联系电话
},
contact: {
tel: '', // 提货人联系电话
recipients: '', //提货人姓名
},
time: '', // 自提时间
}
},
// 订单支付数据
payment: {
realPay: 9900, // 实付金额,单位:分
postage: 600, // 邮费,单位:分
},
// 商品列表
goodsList: [{
title: '商品名称',
imgUrl: 'https://img.yzcdn.cn/upload_files/2019/03/23/dd2c6bdab2c8e6b41a595dfcacf34511.jpg',
alias: '', // 商品alias
num: 2, // 数量
payPrice: 100, // 商品价格
}]
事件 (events)
事件名 | 入参 | 事件类型 | 事件说明 |
---|---|---|---|
onExpressChanged | { expressType: string, address: object, selfFetch: object } |
同步事件 | 配送信息变更时触发 |
beforeCreateOrderAsync | { delivery: object, payment: object, goodsList: Array } |
异步事件 | 提交订单之前事件触发。(reject 会阻止创建订单) |
afterCreateOrder | { orderNo: string, // 订单号 } |
同步事件 | 生成订单之后触发。 |
onPayItemClickAsync | { payChannel: string, // 支付渠道 payChannelName: string, // 支付渠道名称 } |
异步事件 | 当选择某种支付方式点击时触发。(reject 会阻止支付) |
流程 (getProcess)
创建订单
const createOrder = getProcess('createOrder');
createOrder().then(res => {
// 订单创建成功后暴露的数据,目前里面只有 orderNo
console.log(res.data);
// 可用的支付方式列表
// 接入支付扩展点 或 用户无需支付时,返回空数组
console.log(res.payWays);
});
开始支付
const createOrder = getProcess('createOrder');
const startPay = getProcess('startPay');
createOrder().then(res => {
// 不传参数时,会唤起收银台,用户自行选择支付方式
startPay();
// 传入一项支付方式时,不会唤起收银台,直接进行对应的支付方式
startPay(res.payWays[0]);
});
流程名 | 入参 | 流程说明 | 返回信息 |
---|---|---|---|
saveAddress | { id, // 编辑时必传 userName, // 收货人姓名 tel, // 收货人电话 province, // 省 city, // 市 county, // 县 / 区 addressDetail, // 详细地址 areaCode, // 地区编号 lat, // 维度(可选) lon, // 经度(可选) postalCode, // 邮政编码(可选) isDefault, // 是否设为默认地址(可选) } |
同步事件 | Promise(address); |
selectAddress | id: string // 当前选中收货地址 id | 选择收货地址 |
请问有基于该接口开发好的案例吗?