codecamp

微信小程序 即时配送接口(商家查看)·开发必读

开发必读

商家接入准备

  1. 小程序进行微信认证
  2. 开通事件推送,设置事件地址:登录小程序后台,开发->开发设置->消息推送->启用
  3. 消息加密方式使用安全模式,数据格式选JSON
  4. 如果授权给第三方,则不需要步骤2
  5. 在配送公司注册帐号,并在小程序后台进行授权绑定

名称解释

  1. appkey: 一般为商家在登录配送公司开放平后分配的相应的appkey值
  2. AppSecret: 一般为商家在登录配送公司开放平后分配的相应的秘钥
  3. shopid:微信平台字段,对应配送公司的appkey
  4. shop_no:商家对不同门店进行的编号,需要在配送公司系统有过登记,比如商家自己门店系统中有100个门店,编号是1-100,在顺丰同城的系统中有登记过这100个门店,且在顺丰同城登记的编号也是1-100,那么下单的时候传shop_no=1,就是编号为1 的门店下的配送单
  5. shop:下单请求的一个字段,商家信息,会展示到物流通知消息中,如下图所示 640 (1)
  6. 下单请求的取货码和收货码:取货码是指骑手在商家这里取货时,商家出示取货码,骑手才能完成取货;收货码指骑手送达给用户时,用户出示收货码,骑手才算配送完成。商家可在配送公司开放平台设置是否需要开启取货码和收货码

调用api接口说明

  1. 编码方式:UTF-8
  2. 数据格式:JSON
  3. 提交方式:POST
  4. 下单需要使用绑定的shopid和AppSecret,其中shopid即配送公司帐号的appkey,AppSecret即配送公司帐号对应的秘钥
  5. resultcode错误码和resultmsg错误描述由运力方定义,微信侧负责透传,只统一定义code=0表示成功
  6. 除了平台本身的加解密和签名,和订单相关的请求还需要带上运力侧签名delivery_sign,签名规则为
  7. 如果接口请求里有字段shop_order_id ,则delivery_sign=SHA1(shopid + shop_order_id + AppSecret),其中shopid对应运力侧的appkey,shop_order_id对应订单id,AppSecret即配送公司帐号对应的秘钥
  8. 如果请求里没有字段shop_order_id ,则delivery_sign=SHA1(shopid + AppSecret),其中shopid对应运力侧的appkey,AppSecret即配送公司帐号对应的秘钥
  9. 示例:shopid=“test_shop_id”,shop_order_id =“test_shop_order_id”, AppSecret=“test_app_secrect”,则delivery_sign=“a93d8d6bae9a9483c1b1d4e8670e7f6226ec94cb”

错误码说明

错误码 错误描述
930555 微信平台系统错误
930556 配送公司超时
930557 配送公司系统错误
930558 配送公司逻辑错误
930559 openid无效
930560 未绑定的商户号
930561 参数错误
930562 配送单已经存在
930563 配送单不存在
930564 调用无配额
930565 配送单已结束
9300535 shop字段商品缩略图 url、商品名称为空或者非法,或者商品数量为0
其他错误码 配送公司返回的错误码


微信小程序 即时配送接口(商家查看)·配送公司信息
微信小程序 即时配送接口(商家查看)·相关接口和事件
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

微信小程序 指南

目录结构

开放能力

微信小程序 调试

微信小程序 实时日志

微信小程序 小程序测速

微信小程序 基础组件

微信小程序 API

媒体

界面

微信小程序API 绘图

微信小程序 服务端

接口调用凭证

统一服务消息

微信小程序 服务市场

微信小程序 生物认证

微信小程序 云开发

服务端

微信小程序云开发服务端API 数据库

SDK文档

微信小程序 扩展能力

关闭

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; }