ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 字节小程序担保支付简介 > 开发者可以申请担保支付交易,让用户能够在电商、生活服务、知识付费等多种场景下,在小程序完成支付闭环,提升用户的支付体验,保障资金安全。 ## [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/RE#%E6%8B%85%E4%BF%9D%E6%94%AF%E4%BB%98%E8%83%BD%E5%8A%9B)担保支付能力 ### [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/RE#%E5%90%8D%E8%AF%8D%E8%A7%A3%E9%87%8A)名词解释 | 名词 | 释义 | | --- | --- | | 商户 | 用于承接担保支付交易的账户,用户支付后,款项会进入卖家账户的冻结金额 | | 进件 | 指提交支付相关资质并开通支付账号的流程 | | 支付秘钥 | 担保支付使用了一套独立的秘钥,非 app secret,加签逻辑参考附录 | | 结算 | 商户账户中的冻结金额需要进行结算将冻结金额结算至可提现金额。同时如果对卖家收到的款项有分配的需要,也需要在结算环节明确各方的分配金额。货款会在结算后进入各个分账方的可提现账户中 | | 分账方 | 参与结算的非卖家用户,可以获分一定金额的货款。但分配金额之和不能超过支付订单金额的 30% | | 服务商 | 帮助开发者(业务方)进行小程序的开发者、运营的团队和公司 | | 第三方平台 | 第三方平台(TP)是指服务商进行开发、管理、运营小程序并从此获取收益的平台;**小程序运营者,可以一键授权给第三方平台,通过第三方平台来完成业务**[第三方平台网页链接](https://open.microapp.bytedance.com/?is_new_connect=0&is_new_user=0) | | 支付授权 | 在第三方平台开发模式中,向第三方授权管理担保支付功能。在授权时,需要配置允许其对外分配的金额上限 | ### [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/RE#%E5%BC%80%E5%8F%91%E8%80%85%E6%A8%A1%E5%BC%8F)开发者模式 开发者模式,是指具有支付进件资格的主体,接入担保支付后,所有的货款进入唯一的一个担保支付账户中。后续的结算不需要分账给其他第三方。 接入者需要在小程序开发者平台上完成担保支付的申请后,在平台完成小程序对应担保支付账户的进件。开发接入**支付下单,退款,结算**三个环节即可。 ### [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/RE#%E6%9C%8D%E5%8A%A1%E5%95%86%E6%A8%A1%E5%BC%8F)服务商模式 服务商模式接入,主要是指需要有使用服务商身份进行支付开发的,以及以服务商身份对交易货款进行分账。无以上两种需求的服务商可以**按独立开发者模式接入**。 服务商首先需要入驻第三方平台后,进行**支付授权**。支付授权完成后,就可以按第三方进件中的**服务商进件**获取服务商进件页面。进件完成后,可以得到一个服务商专属的**支付秘钥**。使用该秘钥就可以进行支付开发。开发接入**支付下单,退款,结算**三个环节即可,在结算环节时可以传入参数,为自己分配授权额度以下的金额(**对外分配比例之和少于整笔交易金额的 30%**)。 当存在涉及服务商,卖家之外的额外分账方时,需要以服务商身份(必须完成服务商入驻)按第三方进件中的**第三方进件**,为每一个分账方操作进件。在结算环节时可以传入参数,为各个分账方按情况分配授权额度以下的金额(**服务商和额外分账方的分配金额之和必须少于整笔交易金额的 30%**)。 ### [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/RE#%E8%BF%9E%E9%94%81%E9%97%A8%E5%BA%97%E6%A8%A1%E5%BC%8F)连锁门店模式 对于一些场景,同一小程序需要承接不同卖方的交易行为(**卖方获得大部分货款,受限于对外分账额度上限,不能使用分账完成分配**)。例如连锁门店的交易小程序,需要使用统一小程序承载交易,但货款由每一个门店的担保支付账户接收。 需要使用连锁门店模式的商户应向开发者平台进行申请,提供相关的资质证明及门店授权合作协议,与平台签订分账协议后方可使用该种模式下的相关功能。 # 接入流程 ## [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/TE#%E6%8E%A5%E5%85%A5%E5%87%86%E5%A4%87)接入准备 ## [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/TE#%E7%94%B3%E8%AF%B7%E5%BC%80%E9%80%9A%E6%94%AF%E4%BB%98%E8%83%BD%E5%8A%9B)申请开通支付能力 小程序在申请开通支付能力前,应在小程序【开发者平台-功能管理-支付】界面阅读并同意《担保交易功能通知》,之后方可申请开通使用。 ### [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/TE#%E8%BF%9B%E4%BB%B6)进件 **开通条件** 小程序需已通过主体认证,且完成基本信息配置。 **开通支付账号** 进入小程序开发者平台([microapp.bytedance.com](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/microapp.bytedance.com))-功能管理-支付-担保交易开通。![](https://sf3-ttcdn-tos.pstatp.com/obj/developer/docs/images/7b3b99f7-0ccd-4090-9350-fab23a39d23e-9534283300856880.png) **资质填写** 按提示填写商户、法人信息,管理员信息、结算信息,需由支付宝、微信审核需 2-3 个工作日。 1. 商户基本信息及证件图片 * 商户类别:可选择 个人(持续从事电子商务经营活动满 6 个月且期间经营收入累计超过 20 万元。)/企业/个体工商户/小微 * 商户名称:需与证件内容一致 * 商户简称:用于支付时向买方展示 * 商户证件类型及编号:营业执照(统一社会信用代码)即三证合一之后的 * 商户证件是否为长期及有效期至 * 协议确认账号 2. 法人基本信息及证件图片 * 法人姓名:需与身份证等证件内容展示一致 * 证件类型及证件号 * 商户证件是否为长期及有效期至 3. 管理员信息 * 管理员姓名 * 管理员手机号码 * 管理员身份证号 * 管理员邮箱 4. 结算信息 * 结算卡属性:对公 * 开户银行省份、城市等 * 开户银行、开户支行 * 结算卡卡名及卡号:仅支持储蓄卡,不支持信用卡 * 银行预留手机号 * 支付宝结算类型、支付宝结算账号 **验证签约** 验证后即进入等待审核环节,审核时间预计 2-3 个工作日。![](https://sf3-ttcdn-tos.pstatp.com/obj/developer/docs/images/4-8416982615566007.png) 微信支付签约认证环节需使用管理员微信扫码进行确认。![](https://sf3-ttcdn-tos.pstatp.com/obj/developer/docs/images/5-3176958508708520.5.png) 完成后重新进入支付页面则如下显示:![](https://sf3-ttcdn-tos.pstatp.com/obj/developer/docs/images/6-7833466826907003.png) **微信和支付宝进件成功后,用户可以通过微信和支付宝在小程序内进行支付。** ### [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/TE#%E6%94%AF%E4%BB%98%E8%AE%BE%E7%BD%AE)支付设置 支付设置中需对该小程序的 URL、Token、SALT 进行配置。 * 商户号:小程序平台自动分配 * URL:服务端地址,必须以 https 开头,支持 443 端口 * Token:小程序平台向开发者服务端发送请求时的密钥,必须为英文或数字,长度为 3-32 个字符 * SALT:向小程序平台发送请求时的密钥 ### [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/TE#%E6%94%AF%E4%BB%98%E6%8E%88%E6%9D%83%EF%BC%88%E6%9C%8D%E5%8A%A1%E5%95%86%E6%A8%A1%E5%BC%8F%EF%BC%89)支付授权(服务商模式) 对于使用第三方平台模式开发小程序的用户。需要针对小程序担保支付,根据文档[字节小程序第三方接入文档](https://microapp.bytedance.com/docs/zh-CN/mini-app/thirdparty/overview-guide/development-process/)进行专门的支付行为授权,并且完成服务商的进件,才可以继续在第三方平台模式下接入担保支付能力。 为了便于服务商对进件与账户信息的管理。担保支付通过提供接口获取进件与账户页面 URL 方式完成进件。具体参考接口[第三方进件部分](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/YE#%E7%AC%AC%E4%B8%89%E6%96%B9%E8%BF%9B%E4%BB%B6)。 ### [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/TE#%E7%AC%AC%E4%B8%89%E6%96%B9%E8%BF%9B%E4%BB%B6%EF%BC%88%E6%9C%8D%E5%8A%A1%E5%95%86%E6%A8%A1%E5%BC%8F%EF%BC%89)第三方进件(服务商模式) 如果在业务场景中涉及小程序,服务商之外的第三方参与交易,则需要在完成服务商进件后,以服务商身份请求接口,参考第三方进件接口[](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/TE)为第三方获取进件页面与账户页面 URL,完成进件。 ### [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/TE#%E6%94%AF%E4%BB%98%E8%83%BD%E5%8A%9B%E6%8E%A5%E5%85%A5)支付能力接入 ![](https://sf3-ttcdn-tos.pstatp.com/obj/developer/docs/images/8-42322955297093.84.png) > 服务端接入 * 用户在商户侧通过接口完成商品的预下单 * 商户后端生成商品订单信息,并调用小程序平台后端预下单接口进行预下单 * 商户后端将预下单获取的 orderInfo 返回给商户前端 > 前端(小程序)接入 * 前端(小程序)调用 tt.pay 接口,调起小程序收银台,发起支付流程 * 前端(小程序)接收支付结果回调,进行后续业务处理 ### [](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/payment/secure/TE#%E5%89%8D%E7%AB%AF%EF%BC%88%E5%B0%8F%E7%A8%8B%E5%BA%8F%EF%BC%89%E6%8E%A5%E5%85%A5)**前端(小程序)接入** 商户前端在接收到后端返回的 orderInfo 后就可以直接调用 tt.pay 拉起收银台了 1. 输入 | 属性 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | success | function | 否 | 接口调用成功的回调函数 | | fail | function | 否 | 接口调用失败的回调函数 | | orderInfo | object | 是 | 调起小程序支付收银台订单信息 | | service | number | 是 | 固定值:5 | orderInfo 属性如下: | 属性 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | order\_id | string | 是 | 商户后端在字节跳动平台预下单获取的订单号 | | order\_token | string | 是 | 商户后端在字节跳动平台预下单获得的订单 Token | > orderInfo 是相对于非担保交易收银台参数变化最大的部分;在新的担保交易模式下,商户服务端在小程序平台服务端下单(参考服务端接入),获得 orderInfo,并最终透传至 tt.pay,传输链路上的字段更少。 2. 输出 success 返回参数说明 | 属性 | 类型 | 说明 | | --- | --- | --- | | code | number | 支付状态码:0-支付成功,1-支付超时,2-支付失败,3-支付关闭,4-支付取消,9-订单状态开发者自行获取 | > 只要调起收银台成功,支付状态都会回调 success 返回,开发者依据返回的 code 值,进行后续业务逻辑处理 ~~~js 代码示例; ~~~ ~~~js tt.pay({ service: 5, orderInfo: { order_id: "6819903302604491021", order_token: "CgsIARCABRgBIAQoARJOCkx+WgXqCUIwTel2V3siEGZ0++poigIM+SMMxtMx798Vj0ZYzoTYBqeNslodUC9X5KAOHkR1YbSBz6I6pXATh5faIGy7R72A9vwm0OczGgA=", }, success(res) { if (res.code === 0) { // 支付成功处理逻辑,只有res.code=0时,才表示支付成功 // 但是最终状态要以商户后端结果为准 } }, fail(res) { // handle fail }, }); ~~~