# 技术集成指南 ## 集成交互说明 ![集成交互流程](https://cdn.nlark.com/yuque/0/2023/png/25758943/1692675283450-908be34c-4234-4f26-bc55-6b8eb39e9259.png) ### 业务流程说明 1. 旅行社通过"企业签约"接口完成企业码服务开通和入驻。 2. 可以根据需要"创建部门"接口来管理旅行社不同门店。并通过"添加企业员工"接口来添加导游名单,员工离职后通过"删除企业员工"接口从企业码中删除该名员工。 3. 员工名单添加后,通过二维码,或者链接跳转的方式,让员工通过自己的支付宝账户完成企业码协议确认,以完成员工与企业的激活和绑定。 4. 先通过"创建费控制度"创建通用场景费控制度,通过"编辑费控制度成员"接口将旅行社的导游都添加到费控制度下。导游根据旅行社内部备用金审批流程完成备用金的申请,审批流程走完后,通过"创建手工发放额度"接口,为员工创建一个点券类型的额度,可消费时间范围、金额与备用金申请条件一致。 5. 导游在带团过程中,需要使用备用金进行消费时,进入企业码小程序,出示企业码付款码,或者企业码的扫一扫,进行企业码因公消费。点券到期后,将不可使用企业因公资金进行消费,出示企业码,会使用个人账户资产完成消费支付。 6. 导游消费后,消费记录会实时通过"账单变动通知"同步给到旅行社。 > **注意**: 以上的应用只是个参考案例,我们是要做一个类似因公付款服务系统,但不是关于旅行社的。你只需要参考结构。 *** ## 1. 集成工作流程说明 ### 1.1 集成步骤 1. 企业支付宝账号注册,[点击查看指导手册](https://opendocs.alipay.com/open/200/qyzfbsmrz)。 2. 联系合作BD签约支付宝销售方案。 - a. 甲方企业需要签署"企业报销码KA合作"销售方案。 - b. 企业码合作的服务商,需要签署"企业码服务商合作"销售方案。 3. 销售方案签约后会自动生成Appid用于接口调用。也可以创建自研服务的应用"[小程序](https://opendocs.alipay.com/mini/)"或"[网页&移动应用](https://opendocs.alipay.com/open/200/105310)",并将应用的Appid提供给支付宝PD完成产品包挂载添加权限。 - 所使用的自研服务应用则需要完成:"配置密钥" 和 "[上线应用](https://opendocs.alipay.com/open/200/golive)"。 - 小程序应用:审核通过后自动上线。 - 网页/移动应用:需要手动上线。提交审核后,预计 1 个工作日的审核时间,需请耐心等待,详细步骤可查看 [上线应用](https://opendocs.alipay.com/open/200/golive/)。 - 订阅消息接入,待完成产品包挂载后即可订阅相关消息(说明:若未挂载相应产品包将无法订阅相关消息接口)。消息订阅路径:支付宝开放平台-控制台-开发设置-FROM平台。 ![消息接入](https://cdn.nlark.com/yuque/0/2022/png/232948/1670222689950-bba83581-a2d9-451c-9c20-618f279ba695.png) > **说明**: 消息接入方式支持 websocket长连接 和 http(s) 两种接入任选其一即可,详情可点击查看From蚂蚁消息服务使用。 1. 协议签署,通过"企业签约"接口完成入驻。 2. 按下面技术方案内容进行接口开发。 3. 在生产环境进行联调测试。 4. 上线。 ### 1.2 集成前准备 #### 1.2.1 开发前准备 查看[开放平台文档](https://opendocs.alipay.com/open/01csp3#%E9%9B%86%E6%88%90%E5%B9%B6%E9%85%8D%E7%BD%AE%20SDK),完成以下两步准备工作: 1. 集成并配置SDK 2. 接口调用配置 #### 1.2.2 企业码接口通用参数说明 - **charset**(字符集):`utf-8` - **企业ID**(企业入驻企业码生成的企业id)入参说明: - `enterprise_id`,2.0版本接口生成的企业id *** ## 2. 企业码接口 ### 2.1 员企业关系管理 #### 2.1.1 企业管理 企业需要开通企业码服务,需要通过下面的接口完成企业码服务的开通。支持服务商引入企业开通,也支持每个企业进行单独开通。 ![企业管理流程](https://mdn.alipayobjects.com/afts/img/A*bGW3RpTJ6wkAAAAAR4AAAAgAeq8wAA/original?bz=openpt_doc\&t=jFA0EujoL2MttD0BJbYbGR1jGLNc3ef-hHBiRFUlbAQDAAAAZAAAMK8AAAAA) ##### 2.1.1.1 邀请企业注册 **接口名**: `alipay.commerce.ec.enterprise.registerinvite.create` **功能说明**: 获取企业码-企业注册/认证/签约三合一页面的链接地址,适用于邀请企业或代理企业开通企业码 - 企业自研系统入驻,可以通过企业支付宝账号登录[企业码PC端](https://qiyema.alipay.com/) 完成企业签约开通。 - 企业通过接口入驻或者服务商代入驻,可以使用接口创建企业 - 如果是服务商代企业开通的情况,企业名称需要填写和企业营业执照一致的名字,企业才会成为认证状态使用更多能力,否则无法使用企业码。 ![企业注册流程](https://mdn.alipayobjects.com/afts/img/A*TXksTYF_nCMAAAAATxAAAAgAeq8wAA/original?bz=openpt_doc\&t=VwPGn0-Vw8oFeMbXhP40EGKnzHZl-89LR7cTOxmjww0DAAAAZAAAMK8AAAAA) **参数说明**: ![参数说明](https://cdn.nlark.com/yuque/0/2022/png/224831/1661180823534-a15d3790-2221-423a-a1c5-394c14c1a974.png) ##### 2.1.1.2 企业状态变更通知 **接口名**: `alipay.commerce.ec.enterprise.change.notify` **功能说明**: 企业相关状态变化产生的通知信息,包括企业签约成功,企业注销等状态通知。 **参数说明**: **支付宝通知类消息接入说明**: ##### 2.1.1.3 其他可选接口 **1. 企业解约【可选】** - **接口名**: `alipay.commerce.ec.enterprise.unsign` - **功能说明**: 企业解约,获取解约链接,点击链接跳转到解约页面,进行资金协议解约。 - **参数说明**: **2. 企业注销【可选】** - **接口名**: `alipay.commerce.ec.enterprise.delete` - **功能说明**: 企业注销,并清理企业数据,企业及员工不再能使用企业码服务。注销前,请先完成企业解约(alipay.commerce.ec.enterprise.unsign)。 - **参数说明**: **3. 查询企业详情【可选】** - **接口名**: `alipay.commerce.ec.enterprise.info.query` - **功能说明**: 查询企业详细信息 - **参数说明**: **4. 修改企业信息【可选】** - **接口名**: `alipay.commerce.ec.enterprise.info.modify` - **功能说明**: 目前主要支持修改企业简称。 - **参数说明**: #### 2.1.2 员工管理 用来管理可申请备用金的导游支付宝账户。 ##### 2.1.2.1 添加企业员工 **接口名**: `alipay.commerce.ec.employee.add` **功能说明**: 通过接口同步企业员工信息,并获取员工加入企业码链接。员工绑定开通后,即建立企业账号与员工账号的关联关系。并将结果通知给到企业。 **参数说明**: **重要参数说明**: - `department_ids`为部门列表,目前只支持员工在一个部门里,不支持跨多个部门。 - `sign_url`每个企业返回的链接都是固定的,且永久有效 **手机号/邮箱邀请员工加入交互逻辑说明**: ![员工加入流程](https://cdn.nlark.com/yuque/0/2022/png/224831/1662385873146-edd4a786-f3a4-4c70-a76d-e0e6eb7bb3af.png) **手机号/邮箱邀请员工身份确认逻辑说明**: 员工开通服务时,入参传入员工在企业预留的手机号/邮箱和员工姓名,支付宝会唤起短信校验码页面让员工进行校验,校验一致,则完成员企业关系绑定。 ![身份确认流程](https://cdn.nlark.com/yuque/0/2022/png/224831/1662389849644-d543d812-8018-41b2-9531-9c964881a663.png) **员工加入企业的固定链接**: - 员工同意加入需要员工访问支付宝页面进行签约操作。 - 将企业签约完成后获取到的 accountId 企业账号拼接到 `alipays://platformapi/startapp?appId=2021002128690179&page=pages%2Fopen%2Finvite%2Fsign%2Findex%3FaccountId%3D` 地址后面,生成二维码让员工扫码加入企业。 - **注**: 该链接中`appId=2021002128690179`为固定值,不需要进行变更。 - 该二维码是基于企业账号维度的,生成一次即可,员工加入可以重复使用。只有被邀请过的员工加入才会继续流程,没有被邀请过的扫码后无法加入企业。 - 完整链接如下所示: ``` alipays://platformapi/startapp?appId=2021002128690179&page=pages%2Fopen%2Finvite%2Fsign%2Findex%3FaccountId%3D2088000330796***. ``` **小程序跳转企业码签约页面方案**: 小程序按下面代码示例调用,跳转企业码员工签约授权页,只需要替换掉enterpriseId后面的值为自己企业的enterpriseId。**不要改appId的值!不要改appId的值!不要改appId的值!** **旅行社场景按如下表格圈选字段及示意枚举值传参即可**: ![字段说明](https://cdn.nlark.com/yuque/0/2024/png/25758943/1716187605316-d4b959fd-1bcd-4a6d-af79-f87e8af2c960.png) ##### 2.1.2.2 删除企业员工 **接口名**: `alipay.commerce.ec.employee.delete` **功能说明**: 通过接口删除企业码已离职员工。 **参数说明**: ##### 2.1.2.3 员工变更通知 **接口名**: `alipay.commerce.ec.employee.change.notify` **功能说明**: 员工变更通知,包括:员工新增、激活、信息修改、部门修改、角色修改和删除 **参数说明**: ##### 2.1.2.4 其他可选接口 **1. 获取员工邀请链接【可选】** - **接口名**: `alipay.commerce.ec.employee.invite.query` - **功能说明**: 获取员工邀请链接。返回的sign\_url与员工邀请接口返回的sign\_url一致,链接都是固定的,且永久有效。 - **参数说明**: **2. 修改员工信息【可选】** - **接口名**: `alipay.commerce.ec.employee.info.modify` - **功能说明**: 修改员工信息 - **参数说明**: **3. 查询员工详情【可选】** - **接口名**: `alipay.commerce.ec.employee.info.query` - **功能说明**: 通过员工id查询企业码中员工信息。 - **参数说明**: **4. 查询员工id列表【可选】** - **接口名**: `alipay.commerce.ec.employee.idlist.query` - **功能说明**: 批量查询加入企业的员工id。 - **参数说明**: **5. 企业升级高级认证【可选】** - **接口名**: `alipay.commerce.ec.enterprise.auth.apply` - **功能说明**: 已注册企业从初级认证升级高级认证。 - **参数说明**: ### 2.2 费用控制管理 **旅行社备用金场景费用控制建议交互逻辑**: ![费用控制流程](https://cdn.nlark.com/yuque/0/2022/png/224831/1669617618685-410f1dd1-4ab4-44a1-9cca-43523ac40ca3.png) #### 2.2.1 费控制度管理 ##### 2.2.1.1 创建费控制度 **接口名**: `alipay.ebpp.invoice.institution.create` **功能说明**: 创建费控制度。 - 创建费控制度时的入参中至少同时要创建一条使用规则,发放规则不是必须同时创建。 - 其中使用规则名称在企业码小程序端用户可见,费控制度名称不可见。 - 创建制度后,再通过编辑费控制度成员接口进行制度下成员管理 **参数说明**: **费用类型及子类**: - 对于旅行社备用金来说,可以不限制可消费商户,费用类型和费用类型子类都用`DEFAULT`即可。 - 旅行社使用 手工发放接口 进行额度管控即可,不要设置使用规则限额 **旅行社场景按如下表格圈选字段及示意枚举值传参即可**: ![字段说明1](https://cdn.nlark.com/yuque/0/2023/png/25758943/1695287030313-2e9512f5-0082-4a0a-bb6c-7e0d70fe62e5.png) ![字段说明2](https://cdn.nlark.com/yuque/0/2023/png/25758943/1695287144351-c3edfd90-dff6-4e71-9a92-df3a3499e1b2.png) ![字段说明3](https://cdn.nlark.com/yuque/0/2023/png/25758943/1695287215178-3fa81a74-90db-437e-8a94-5fc58b56d311.png) ![字段说明4](https://cdn.nlark.com/yuque/0/2023/png/25758943/1695287319910-e3e1b3e3-edcc-4a41-a013-15a30431f15b.png) ![字段说明5](https://cdn.nlark.com/yuque/0/2023/png/25758943/1695293610034-3394d00c-6a4b-43cd-b489-0f059c48606d.png) ![字段说明6](https://cdn.nlark.com/yuque/0/2023/png/25758943/1699605009207-961d01ac-d601-4b55-8326-ebbe4b5dfba2.png) ![字段说明7](https://cdn.nlark.com/yuque/0/2023/png/25758943/1699605044789-e8712b19-5f76-44e0-b865-f86187e61e66.png) **standard\_condition\_info\_list字段传值参考**: | 使用时间 | 说明 | | -------------------- | ---------------------- | | 【ALARM\_CLOCK\_TIME】 | 1、时间不限: `{"all":true}` | **定向支付,指定商户**: | 字段 | 是否必填 | 枚举值 | | -------------------------- | ---- | ----------------- | | 费用类型【expense\_type】 | 是 | 餐饮【MEAL】 | | 费用类型子类【expense\_sub\_type】 | 是 | 中餐【CHINESE\_FOOD】 | | 商户PID【merchant\_pid】 | 是 | 商户PID,2088开头 | ##### 2.2.1.2 编辑费控制度 **接口名**: `alipay.ebpp.invoice.institution.modify` **功能说明**: 编辑费控制度完整信息。 **参数说明**: ##### 2.2.1.3 查询费控制度适用成员范围 **接口名**: `alipay.ebpp.invoice.institution.scopepageinfo.query` **功能说明**: 查询制度下成员列表,支持分页查询。 **参数说明**: ##### 2.2.1.4 其他可选接口 **1. 查询费控制度列表【可选】** - **接口名**: `alipay.ebpp.invoice.institution.pageinfo.query` - **功能说明**: 查询企业下所有创建的费控制度,支持分页查询。 - **参数说明**: **2. 查询单个费控制度详情【可选】** - **接口名**: `alipay.ebpp.invoice.institution.detailinfo.query` - **功能说明**: 查询单个费控制度详细信息,包含制度下使用规则列表和发放规则列表。 - **参数说明**: **3. 删除费控制度** - **接口名**: `alipay.ebpp.invoice.institution.delete` - **功能说明**: 删除制度,删除制度下使用规则和发放规则以及制度下人员关系。制度关联的发放规则和已发放的券或者额度都会被清除,不可再使用。 - **参数说明**: #### 2.2.2 手工发放额度管理 ##### 2.2.2.1 创建手工发放额度 **接口名**: `alipay.ebpp.invoice.expensecontrol.quota.create` **功能说明**: 创建用户可用额度。target\_type用INSTITUTION(费控制度)来创建,target\_id用前面创建的费控制度id(institution\_id)。 - 为每个员工单独创建。 - outer\_source\_id用来控制幂等。 **关键入参**: ##### 2.2.2.2 查询员工可用额度 **接口名**: `alipay.ebpp.invoice.expensecontrol.quota.query` **功能说明**: 查询员工可用额度值。 **关键入参**: ##### 2.2.2.3 修改手工发放额度 **接口名**: `alipay.ebpp.invoice.expensecontrol.quota.modify` **功能说明**: 可对额度进行增加、扣减等操作。 **关键入参**: **修改额度场景说明**: - **case1**: 修改金额不修改有效期日期时间,需要用4.2.2.3修改手工发放额度,将额度进行变更 - **case2**: 额度修改涉及有效期时间,需要先用4.2.2.3将额度调整成0,再用4.2.2.1重新发放额度 ##### 2.2.2.4 其他可选接口 **1. 删除额度** - **接口名**: `alipay.ebpp.invoice.expensecontrol.quota.delete` - **功能说明**: 可对余额/点券进行删除操作;已经有过使用记录的点券无法删除 - **关键入参**: #### 2.2.3 使用规则管理 ##### 2.2.3.1 编辑使用规则 **接口名**: `alipay.ebpp.invoice.institution.expenserule.modify` **功能说明**: 编辑使用规则属性。 **参数说明**: ##### 2.2.3.1 其他可选接口 **1. 创建使用规则** - **接口名**: `alipay.ebpp.invoice.institution.expenserule.create` **功能说明**: 创建使用规则,场景和费用类型需要和制度一致,有效期起始、结束时间、关联人员与制度保持一致。 **参数说明**: **2. 删除使用规则** - **接口名**: `alipay.ebpp.invoice.institution.expenserule.delete` **功能说明**: 删除使用规则。如果是制度下唯一使用规则,则使用规则不能被删除。 **参数说明**: 2.4 账单&订单信息获取 ![image.png](https://mdn.alipayobjects.com/afts/img/A*6de1QpMVxE4AAAAAZGAAAAgAeq8wAA/original?bz=openpt_doc\&t=qOIHDqiIi1PwpgQXCGrluWAKvKaBCCsO-Lib0mj8uu4DAAAAZAAAMK8AAAAA) ### 2.4.1 支付账单信息获取 #### 2.4.1.1 账单变动通知 **接口名**: `alipay.commerce.ec.consume.change.notify` **功能说明**: 单笔交易信息账单关联凭证发生变化时通知。 **参数说明**: **支付宝通知类消息接入说明**: #### 2.4.1.2 账单详情查询 **接口名**: `alipay.commerce.ec.consume.detail.query` **功能说明**: 获取消费账单详情数据和相关凭证数据。 **参数说明**: - `voucher_content`字段结构介绍: - 账单需区分企业付金额,相关字段处理逻辑如下: - 企业付金额:直接用; - 个人付金额:账单金额—企业付金额=个人付金额; - 优惠:订单金额—账单金额=优惠金额 #### 2.4.1.3 其他可选接口 **1. 账单详情批量分页查询** - **接口名**: `alipay.commerce.ec.consume.detail.batchquery` - **功能说明**: 批量分页查询企业消费账单详情数据 - **参数说明**: > **注意**: 入参中的`start_date`和`end_date`为前闭后开,例如需要查询2021-01-01当天的所有账单,则`start_date`取"2021-01-01 00:00:00",`end_date`取"2021-01-02 00:00:00" **2. 对账单文件下载** - **接口名**: `alipay.commerce.ec.balance.downloadurl.query` - **功能说明**: 支持按日或者月获取账单文件下载链接,日期不能为当日或者当月。 - **参数说明**: ### 2.4.2 账单关联凭证获取 #### 2.4.2.1 凭证变动通知 **接口名**: `alipay.commerce.ec.voucher.change.notify` **功能说明**: 单笔交易账单关联凭证发生变化时通知。 **参数说明**: **支付宝通知类消息接入说明**: #### 2.4.2.2 账单及关联凭证详情查询 **接口名**: `alipay.commerce.ec.consume.detail.query` **功能说明**: 获取消费账单详情数据和相关凭证数据。 **参数说明**:

### 2.5 跳转扫一扫/付款码页面 #### 2.5.1 跳转扫一扫 通过 `openAlipayApp` 拉起扫一扫,调用方式如下: ```javascript my.ap.openAlipayApp({ appCode: 'alipayScan', appParams: { externalThrough: {params} } }) ``` **参数说明**: 其中标为黄色的区域,取值如下: - `{params}` 是需要携带的因公付拓展参数使用 Json 格式字符串 **params参数说明**: - **pdSubBizScene**: 支付决策子场景 - 默认值: `enterprisePay`,适用: 收钱码,当面付,铁路线下支付 - **specifiedEnableChannelInfo** - 按照示例传参,仅需要替换`assetId`为共同账户id(accountId,从[企业签约状态变更消息通知](https://opendocs.alipay.com/apis/0477mu)里获取) - **assignJointAccountId**: 共同账户id(accountId,从[企业签约状态变更消息通知](https://opendocs.alipay.com/apis/0477mu)里获取) - **identityPayBizInfo**: 企业码身份付业务字段 - `identityPayBizScene`: `ENTERPRISE_CODE` - `identityPaySubBizScene`: `ISV_PAY` - `groupId`: 共同账户id(accountId,从[企业签约状态变更消息通知](https://opendocs.alipay.com/apis/0477mu)里获取) - `bizGroupId`: 共同账户id(accountId,从[企业签约状态变更消息通知](https://opendocs.alipay.com/apis/0477mu)里获取) - `expenseGroupId`: 费控规则id(当需要指定费控规则id消费时可传入此字段,可从创建[费控制度接口](https://opendocs.alipay.com/apis/049l40)出参获取) - **CHANNEL_INDEX**: 渠道 - 传入固定值: `ENTERPRISEPAYASSET_DC_ENTERPRISEPAY_DEFAULT` - **sourcePlatformInfo**: 企业码因公付大字段 - `ruleGroupId`: 费控规则id(当需要指定费控规则id消费时可传入此字段,可从创建[费控制度接口](https://opendocs.alipay.com/apis/049l40)出参获取) - `paymentId`: 付款事由(paymentId为服务商付款事由ID,通过此字段服务商可做到精确对账) - `isvAppId`: 三方小程序appId(必传,涉及到后面服务商政策) **接入示例**: 1. 准备所需要的参数,将参数转换为 JSON 结构并压缩(注意 key-value 都是字符串): ```json { "pdSubBizScene": "enterprisePay", "specifiedEnableChannelInfo": "{\"enableScene\":\"agreementpay\",\"assetInfo\":{\"instId\":\"INST_ALIPAY\",\"assetId\":\"2088610***68075\",\"assetTypeCode\":\"ENTERPRISEPAY\",\"assetType\":\"ENTERPRISEPAYASSET\"}}", "assignJointAccountId": "208861***868075", "identityPayBizInfo": "{\"identityPaySubBizScene\":\"ISV_PAY\",\"bizGroupId\":\"208861***868075\",\"groupId\":\"20886***68075\",\"identityPayBizScene\":\"ENTERPRISE_CODE\"}", "CHANNEL_INDEX": "[\"ENTERPRISEPAYASSET_DC_ENTERPRISEPAY_DEFAULT\"]", "enterprise_pay_info": "{\"paymentId\":\"test001\",\"ruleGroupId\":\"2023121200152608840000615146\"}", "sourcePlatformInfo": "{\"paymentId\":\"test001\",\"ruleGroupId\":\"2023121200152608840000615146\",\"isvAppId\":\"2021004130649307\"}" } ``` 2. 通过 `openAlipayPage` 拉起扫一扫 #### 2.5.2 跳转付款码 **集成前准备**: 通过 **开放平台控制台 > 对应小程序详情页 > 开发设置 > openURL配置** 中添加地址自助申请,添加地址填写: ``` alipays://platformapi/startapp?appId=20000056 ``` 若openURL配置没有,需要更改小程序经营类目, [理财金融](https://opendocs.alipay.com/b/03al2m#%E7%90%86%E8%B4%A2%E9%87%91%E8%9E%8D) 、工具 之外的全部小程序经营类目才开放openURL配置。 ![](https://cdn.nlark.com/yuque/0/2023/png/25758943/1703043937438-70150553-ec58-4de6-9783-a350464b019d.png) **schema 跳转付款码 2.0 的跳转链接**,格式如下: ``` alipays://platformapi/startapp?appId=20000056&customBizCode={bizCode}&customBizParams=encode({params}) ``` 其中标为黄色的区域,取值如下: - **bizCode** 是付款码分配的固定业务身份,旅行社场景为 `enterprisePayForThirdPart` - **encode({params})** 是将需要携带的拓展参数用 Json 格式字符串表示后,进行 URL-Encode 后得到的字符串(如果没有拓展参数需要传递,可以不传) **params参数说明**: - **pdSubBizScene**: 支付决策子场景 - 默认值: `enterprisePay`,适用: 收钱码,当面付,铁路线下支付 - **specifiedEnableChannelInfo** - 按照示例传参,仅需要替换`assetId`为共同账户id(accountId,从[企业签约状态变更消息通知](https://opendocs.alipay.com/apis/0477mu)里获取) - **assignJointAccountId**: 共同账户id(accountId,从[企业签约状态变更消息通知](https://opendocs.alipay.com/apis/0477mu)里获取) - **identityPayBizInfo**: 企业码身份付业务字段 - `identityPayBizScene`: `ENTERPRISE_CODE` - `identityPaySubBizScene`: `ISV_PAY` - `groupId`: 共同账户id(accountId,从[企业签约状态变更消息通知](https://opendocs.alipay.com/apis/0477mu)里获取) - `bizGroupId`: 共同账户id(accountId,从[企业签约状态变更消息通知](https://opendocs.alipay.com/apis/0477mu)里获取) - `expenseGroupId`: 费控规则id(当需要指定费控规则id消费时可传入此字段,可从创建[费控制度接口](https://opendocs.alipay.com/apis/049l40)出参获取) - **CHANNEL_INDEX**: 渠道 - 传入固定值: `ENTERPRISEPAYASSET_DC_ENTERPRISEPAY_DEFAULT` - **CHANNEL_MODE**: 渠道展示模式 - 默认值: `NONE_CHANNEL_MODE` - **enterprise_pay_info**: 企业码因公付大字段 - `ruleGroupId`: 费控规则id(当需要指定费控规则id消费时可传入此字段,可从创建[费控制度接口](https://opendocs.alipay.com/apis/049l40)出参获取) - `paymentId`: 付款事由(paymentId为服务商付款事由ID,通过此字段服务商可做到精确对账) - `isvAppId`: 三方小程序appId(必传,涉及到后面服务商政策) **接入示例**: 1. 准备所需要的参数,将参数转换为 JSON 结构并压缩(注意 key-value 都是字符串): ```json { "pdSubBizScene": "enterprisePay", "CHANNEL_INDEX": "[\"ENTERPRISEPAYASSET_DC_ENTERPRISEPAY_DEFAULT\"]", "channelMode": "NONE_CHANNEL_MODE", "specifiedEnableChannelInfo": "{\"enableScene\":\"agreementpay\",\"assetInfo\":{\"instId\":\"INST_ALIPAY\",\"assetId\":\"20883107**473\",\"assetTypeCode\":\"ENTERPRISEPAY\",\"assetType\":\"ENTERPRISEPAYASSET\"}}", "assignJointAccountId": "208831****3473", "identityPayBizInfo": "{\"identityPaySubBizScene\":\"ISV_PAY\",\"bizGroupId\":\"2088310****213473\",\"groupId\":\"2088310****3473\",\"identityPayBizScene\":\"ENTERPRISE_CODE\"}", "enterprise_pay_info": "{\"paymentId\":\"test001\",\"ruleGroupId\":\"2023120400152608470000419071\",\"isvAppId\":\"2021004130649307\"}" } ``` 2. URL encode 后拼接可得到链接(红色部分是固定前缀): ``` 最终链接 = 链接主体 + &customBizParams= + encode(params) ``` 完整示例: ``` alipays://platformapi/startapp?appId=20000056&customBizCode=enterprisePayForThirdPart&customBizParams=%7B%22pdSubBizScene%22%3A%22enterprisePay%22%2C%22CHANNEL_INDEX%22%3A%22%5B%5C%5C%5C%22ENTERPRISEPAYASSET_DC_ENTERPRISEPAY_DEFAULT%5C%5C%5C%22%5D%22%2C%22channelMode%22%3A%22NONE_CHANNEL_MODE%22%2C%22specifiedEnableChannelInfo%22%3A%22%7B%5C%5C%5C%22enableScene%5C%5C%5C%22%3A%5C%5C%5C%22agreementpay%5C%5C%5C%22%2C%5C%5C%5C%22assetInfo%5C%5C%5C%22%3A%7B%5C%5C%5C%22instId%5C%5C%5C%22%3A%5C%5C%5C%22INST_ALIPAY%5C%5C%5C%22%2C%5C%5C%5C%22assetId%5C%5C%5C%22%3A%5C%5C%5C%22208831***213473%5C%5C%5C%22%2C%5C%5C%5C%22assetTypeCode%5C%5C%5C%22%3A%5C%5C%5C%22ENTERPRISEPAY%5C%5C%5C%22%2C%5C%5C%5C%22assetType%5C%5C%5C%22%3A%5C%5C%5C%22ENTERPRISEPAYASSET%5C%5C%5C%22%7D%7D%22%2C%22assignJointAccountId%22%3A%22208831***61213473%22%2C%22identityPayBizInfo%22%3A%22%7B%5C%5C%5C%22identityPaySubBizScene%5C%5C%5C%22%3A%5C%5C%5C%22ISV_PAY%5C%5C%5C%22%2C%5C%5C%5C%22bizGroupId%5C%5C%5C%22%3A%5C%5C%5C%222088***1213473%5C%5C%5C%22%2C%5C%5C%5C%22groupId%5C%5C%5C%22%3A%5C%5C%5C%22208831***13473%5C%5C%5C%22%2C%5C%5C%5C%22identityPayBizScene%5C%5C%5C%22%3A%5C%5C%5C%22ENTERPRISE_CODE%5C%5C%5C%22%7D%22%2C%22enterprise_pay_info%22%3A%22%7B%5C%5C%5C%22paymentId%5C%5C%5C%22%3A%5C%5C%5C%22test001%5C%5C%5C%22%2C%5C%5C%5C%22ruleGroupId%5C%5C%5C%22%3A%5C%5C%5C%222023120400152608470000419071%5C%5C%5C%22%2C%5C%5C%5C%22isvAppId%5C%5C%5C%22%3A%5C%5C%5C%222021004130649307%5C%5C%5C%22%7D%22%7D ``` 3. 通过jsapi拉起付款码 #### 2.5.3 跳转发票关联 通过 `my.navigateToMiniProgram` 拉起扫一扫(通过支付宝小程序跳转方式),调用方式如下: ```javascript // 代码示例 ``` 通过 scheme 拉起扫一扫(通过H5跳转方式),调用方式如下: ``` // scheme示例 ``` **参数说明**: | 参数名称 | 含义 | 值说明 | |---------|------|--------| | enterpriseId | 企业码企业ID(非因公账户ID) | 208831***473 | | pageType | 页面类型,发票关联使用固定值: invoice-folder | invoice-folder | | payNo | 发票关联页面类型对应的查询参数,支付宝交易号 | 2024042522001453811441399756 |