下单页 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 选择收货地址