已更新更新时间:2024-11-21 10:15:34文档更新记录 >配置项检测工具收藏订阅更新我的文档设置接入检测(即可查看检测结果)若有未通过的接入检测项,接口将无法调通去登录返回文档下单与商详一体化页面是支付宝平台推出的,针对 售卖类(实物) 商品提供的快捷下单的工具,是基于商品详情页组件接入的拓展功能。接入下单与商品详情一体化组件,可以在直播带货场景中,向用户提供一键下单的购物体验,提升用户购买商品的转化率。典型场景背景说明:1本次接入为商品详情页组件的拓展功能,如果您已经完成了商品详情页组件的订购、开发,可直接在原本商品详情页组件基础上做升级。2本次方案为支付宝侧提供统一的前端页面展示模板,可在商家小程序中引入该组件提供的功能,其中的数据内容为商户自行接入,页面中展示的邮费、公告、订单金额及商家优惠金额最终解释权归商家所有。3如果需要实现从直播间直接跳转至一键下单页,则可通过本次接入实现该功能。直播带货场景升级后,用户在直播间完成一键下单,显著提高交易转化率。 消费圈带货场景下单页接入示意图: 使用说明1在服务市场订购商品详情页组件。○商家请登录商家平台订购:○服务商请登录服务商平台:2组件接入方式可查看 。使用条件●商家已经有线上的小程序。●商家已经在支付宝平台创建商品并通过审核。●小程序已经支持完整的商品交易功能和交易链路。接入步骤接入时序图说明,需要商家关注以下部分:●1.1 调用 my.getauthcode,获取用户 id 信息。●2.1 从商品详情页跳转到订单页时,商品详情页组件会将商品基础信息带入订单页面(此步骤不需要商家传入信息)。●3.1 中在用户填写收货地址并且选择 sku 及数量后,会触发回调,商家需根据支付宝回调信息中(用户收货地址、sku、数量信息),返回运费、商家优惠、订单总价等信息。●3.3 中用户点击【提交订单】按钮时,会触发回调,商家根据支付宝回调信息中(用户收货地址、sku、数量信息),创建自有系统中订单,并且通过 alipay.open.mini.order.create(订单创建接口)创建业务单,创建支付单。●3.5 商家通过 唤起收银台。第一步:在小程序中声明使用组件说明●如果小程序已经接入过官方商品详情页组件,则可以跳过 第一步。●如果小程序从未接入过商品详情页组件,则需要在小程序的 app.json 中进行以下配置:第二步:从商品详情页跳转到商品下单页从官方商品详情页跳转至下单页说明●如果小程序已经接入过官方商品详情页组件,则需要保留原本「立即购买」回调函数逻辑,无需重复开发,也无需删除原本逻辑。 注意:本次试点方案面向直播场景,非直播场景下会仍然从官方商品详情页跳转至服务商自有下单页页面。●如果小程序从未接入过官方商品详情页组件,则无需接入「立即购买」回调函数,可直接跳过本环节接入。第三步:查询运费、商家优惠等信息查询运费、商家优惠的信息该回调将在下单与 sku 一体化页面中被触发,但是需要提前进行预设(在小程序的 app.ts/app.js 中编写),相关示例代码如下:以上代码会在用户完成地址选择、商品数量调整、商品 sku 切换时触发。支付宝传入参数说明字段名字段类型是否必选描述示例值addressinfoobject-收货地址信息--countrystring是国家中国-provstring是省浙江省-citystring是市杭州市-areastring是区西湖区-fullnamestring是名称张三-mobilephonestring是手机号18100000000iteminfoobject-商品详细信息--outitemidstring是商家侧商品编码(在支付宝商品库中上传的外部商品编码)123-outskuidstring是商家侧规格编码(在支付宝商品库中上传的外部商品规格编码)234-salepricestring是商品价格(在支付宝商品库中上传的商品价格)1.00orderdetailinfoobject-用户选择商品数量信息--quantitynumber是用户在页面中选择购买的商品数量1注意:在回传支付宝回调函数之前,请先获取用户 user_id(open_id),避免后续流程中要求传入用户 id 时,无法获取。特别说明:应隐私要求,原 address 即将回收,对于新接入的小程序不在本回调中返回该字段。为了保证存量小程序的正常运行,对于模版小程序以及存量已完成验收接入的小程序暂不回收。参考文档:my.getauthcode。1在小程序上调用 my.getauthcode,调用时 scope 传入 auth_base:基本信息授权,直接获取 authcode,此 authcode 仅可用于换取用户的 user_id(open_id)。2获取 authcode 以后,小程序通过 my.request 等方式将其传递给服务端。说明:选择调用时 scope 传入 auth_base,此方式为静默授权,不会弹出授权浮窗,用户体验较佳。需要商家回传的信息字段名字段类型是否必选描述示例值priceinfoobject-价格信息--freightstring是商家根据支付宝传入的用户所选商品、数量、地址信息,计算出来的邮费信息;单位:元,精确到小数点后两位。如果包邮,则传入“0”。对应的金额会出现在“运费”这一字段展示。1.00-discountedpricestring是商家优惠金额,单位:元,精确到小数点后两位。是指用户可以在订单页享受的优惠金额(在收银台前扣减的金额),通常为商家券或商家系统中用户可用的优惠金额,无需包含支付宝的支付券信息。如果用户无可用商家优惠,则传入“0”。对应的金额会出现在优惠明细弹层中“商家优惠”这一字段展示。0.50-orderpricestring是创建支付宝业务订单的总金额,需要与传入 alipay.trade.create(统一收单交易创建接口) 中 total_amount 这一字段传入的金额一致;也需要与 小程序交易组件 中 alipay.open.mini.order.create(订单创建接口)中 order_price(订单金额)这一字段保持一致。通常为商品总金额与邮费之和,扣减商家优惠后的金额,需要满足的公式见下方注释。单位:元,精确到小数点后两位。不可为 0 或者负数。1.50orderdetailinfo--订单详细信息--purchasemaxcountstring特殊可选如果用户可以下单,但是单次最大可购买数量有限制。则需要传入 正整数字符串。单次最多可购买数量需要 >=1。"1"-purchaserestrictionboolean否当前商品是否禁止购买,枚举值为 true 或 false。true 表示禁止购买(注意:本字段如果为 true ,不允许售卖的原因 purchaserestrictioncode 需要同时有值 ,否则不生效),false 表示不禁止购买(代表用户可正常购买)。false-purchaserestrictioncodestring特殊可选当且仅当 purchaserestriction 为 true 时生效;商家可以通过该字段告知支付宝侧当前用户不可购买当前商品的原因,错误码及相关解释见下文 附录1。(注意:当需要禁售当前商品时,需要同时满足 purchaserestriction 为 true 、purchaserestrictioncode 为下面的错误原因之一,此时商品无法下单,会对客透出不可下单原因 )"item_sellout"-announcementstring否公告,是指当发货/物流等受到一定影响时,商家为用户传递的公告信息内容,需要为中文内容,不可包含恶意营销或违禁词内容。最大字数为 50 个字符,对应的内容将出现在公告栏飘条中对客展示。-说明:1orderprice = 商品总价(sum[(sale_price)*quantity]) freight - discountedprice ,其中 discountedprice 为商家优惠金额, freight 为运费。2本次接入方案为了实时展示商品信息变化,会使用用户选择的 skuid 信息查询商家,商家进行实时判断。为保证更好的用户体验,如果商品已经下架、价格发生变更,建议接入 ,如果商品部分 sku 已经售罄(请将对应 sku 状态置为下架)或者价格发生变化,请通过调用 同步给支付宝。附录1code原因解释对外处理报错area_code_cannot_buy所选收货地址不能发货抱歉,该地址暂不支持配送,可以更换收货地址buyer_risk收货人为黑名单不能下单购买抱歉,由于商家交易权限设置,本商品暂无法购买item_sellout商品已售罄抱歉,商品已售罄,可购买其他商品item_offline商品在小程序内已下架抱歉,商品已下架,可购买其他商品item_cannot_found该商品信息在小程序中无法找到抱歉,商品信息已失效,可购买其他商品item_price_not_match商品的价格发生变化,不能进行购买抱歉,商家调整了商品价格,可刷新或购买其他商品item_sku_not_match商品的规格发生了变化,不能进行购买抱歉,商家调整了商品规格,可刷新或购买其他商品other其他原因抱歉,当前商品信息异常,可购买其他商品商品不可购买的商家回调示例:第四步:创建业务单,创建支付单,唤起收银台该步骤发生在用户在点击 提交订单 按钮的回调函数中,需要商家提前预设(在小程序的 app.ts 中编写),相关示例代码如下:以下内容为用户点击 提交订单 时,传给商家回调函数中包含的字段,即商家创建小程序交易组件业务订单和创建收单交易中所需信息内容。注意:请使用本次回调拿到的收货地址作为用户发货地址,不可使用【查询运费、商家优惠的信息】返回的收货地址作为实际发货地址。新字段名字段类型是否必选描述示例值addressinfoobject-收货地址信息--addressstring是详细地址。传入方式同 获取用户收货地址 这一组件中返回的内容相同浙江省杭州市西湖区西溪路556号-countrystring是国家中国-provstring是省浙江省-citystring是市杭州市-areastring是区西湖区-fullnamestring是名称张三-mobilephonestring是手机号18100000000iteminfoobject-商品信息--outitemidstring是商家侧商品编码(在支付宝商品库中上传的外部商品编码)123-outskuidstring是商家侧规格编码(在支付宝商品库中上传的外部商品规格编码)。●如果创建商品的时候填入 规格编码(out_sku_id),则会将规格编码返回给商家;●如果创建商品时没有填入 规格编码(out_sku_id),则同样会将规格编码(out_sku_id)返回给商家,此时 out_sku_id=outitemid,即商家侧商品编码相同。234-salepricesaleprice是商品价格(在支付宝商品库中上传的商品价格)1.00orderinfoobject是订单信息--activityconsultidstring是优惠活动咨询id,关联 alipay.open.mini.order.create(订单创建接口)中 activity_consult_id 字段。通常在支付宝会员频道积分加价购等营销场景中使用。详情请见:。abcde-ordermemostring否订单备注,指用户下单时给商家的留言直播间下单-quantitynumber是用户在页面中选择购买 skuid 的商品数量1priceinfoobject是价格信息--freightstring是商家根据支付宝传入的用户所选商品、数量、地址信息,计算出来的邮费信息;单位:元,精确到小数点后两位。如果包邮,则传入“0”。1.00-discountedpricestring是商家优惠金额,单位:元,精确到小数点后两位。是指用户可以在订单页享受的优惠金额(在收银台前扣减的金额),通常为商家券或商家系统中用户可用的优惠金额,无需包含支付宝的支付券信息。如果用户无可用商家优惠,则传入“0”。0.5-orderpricestring是创建支付宝业务订单的总金额,需要与传入 alipay.trade.create(统一收单交易创建接口) 中 total_amount 这一字段传入的金额一致;也需要与 小程序交易组件 中 alipay.open.mini.order.create(订单创建接口) 中 order_price(订单金额)这一字段保持一致。通常为商品总金额与邮费之和,扣减商家优惠后的金额,需要满足的公式见下方说明。单位:元,精确到小数点后两位。不可为0或者负数。1.50payinfoobject是价格信息--typestring是枚举值为:支付宝 alipay先用后付 credit_pay_after_use,如果商家在小程序商品中设置了某一商品可享受“先用后付”营销活动(接口文档为:),则渲染该商品下单页时,默认为用户选中“先用后付”支付渠道。用户选择该渠道后点击立即下单,会将本枚举值传给商家。商家后续需按照 的接入规范,发起交易创建及传入芝麻服务 id。alipay后续需要商家完成的步骤说明:1调用小程序交易组件 获取 sourceid。2调用小程序交易组件 alipay.open.mini.order.create(订单创建接口)创建业务单。 请传入 sourceid( 中返回字段)、activityconsultid(本文档中下单页回调函数返回)3调用 jsapi 支付中 alipay.trade.create(统一收单交易创建接口) 创建支付单。4调用 拉起收银台并支付。5为优化用户体验,需在用户下单未付款关闭收银台时,感知用户关闭支付的状态并且默认跳转至订单待付款页面或者订单列表页。 示例代码如下(以下代码仅供示意):说明:商家只要通过 alipay.open.mini.order.create(订单创建接口) 创建业务单成功以后发生的任何异常都应该往商家小程序自有的订单列表页或订单待付款页进行跳转引导。第五步:联调准备1建议您准备一个单 sku(即用户无需选择规格)、一个多 sku 的商品,同时限制了用户购买件数且需要支付运费,请设置少量库存以便测试库存不足的异常场景;如果您已经接入了先用后付,建议您至少使用 1 个支持先用后付的商品进行联调测试。2如果您需要在本地调试时唤起当前下单页,需要在本次打开商品详情页组件的页面,点击"立即购买"按钮,即可跳转至下单页。方法一(推荐)安装 小程序开发者工具(ide),在 onload 中添加以下代码实现组件页面跳转,进行联调。注意:接入商品详情页组件需使用 3.6.1 及以上版本 ide,2.8.9 及以上版本基础库。点击下载方法二发布组件联调版本,然后通过 schema 跳转。说明:●商户小程序 替换为商品归属的小程序 appid。●商家侧商品编码 替换为商品管理中上传的商家侧商品编码。 第六步:发布小程序确认小程序商品详情页、下单与 sku 一体化页组件接入成功后,需要更新小程序版本,发布小程序后线上版本才会生效,可查看 小程序提审、发布与运营。上传小程序开发完成后,在小程序开发者工具项目页面,点击右上角 上传。上传成功的版本可以在支付宝开放平台小程序详情中查看到该版本,一个小程序可以同时拥有多个开发版本。提交审核选择需要提交审核的开发版本,点击右侧 提交审核,填写审核信息。提交审核后,等待平台审核通过,线上小程序就已经成功接入了商品详情页。如果审核失败,请退回开发版本,修改相关信息后再次提交审核。第七步:功能验收完成验收如果已经完成商详一体化页面的接入,需要您完成功能验收,验收后,商品在上支付宝公域会场或者直播间投放时,可支持默认跳转至一体化下单页。点击 进行验收。1选择小程序版本时,您可以选择 开发中的版本。2需要您准备一个多 sku 的商品,验收时选择开发中的版本,通过验收工具扫码进入小程序,并选择数量增加为 2。3如果您未完成商品详情页组件的验收,需要先完成商品详情页组件的验收(),再进行一体化下单页的验收()。4验收通过后,您可以上架该版本小程序。如果是服务商的模版小程序,只要该模版下有一个小程序完成验收,模版下其它的小程序升级至该上架版本后,均可认为已经完成一体化组件的验收。