创建支付分计划

更新时间:2024.09.02

商户可以基于有按计划确认权限的服务,通过此接口创建支付分计划

接口说明

支持商户:【普通商户】

请求方式:【POST】/v3/payscore/plan/payscore-plans

请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点

     【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看

请求参数

Header HTTP头参数

Authorization  必填 string

请参考签名认证生成认证信息


Accept  必填 string

请设置为application/json


Content-Type  必填 string

请设置为application/json


body 包体参数

service_id  必填 string(32)

【计划所属服务】计划所属支付分服务的ID


appid  必填 string(32)

【AppID】AppID


plan_name  必填 string(20)

【支付分计划名称】支付分计划名称


plan_duration  必填 integer

【支付分计划有效期(单位天)】支付分计划有效期(单位天),不得超过服务规定的计划最大有效期


deduction_quantity  必填 integer

【支付分计划扣费次数】支付分计划扣费次数,和计划明细数量对应,需要和计划明细数量相等


total_original_price  必填 integer

【支付分计划原总金额(单位分)】支付分计划原总金额(单位分)


total_actual_price  必填 integer

【支付分计划实际扣费总金额(单位分)】支付分计划实际扣费总金额(单位分)


plan_detail_list  选填 array[PayScorePlanDetail]

【支付分计划明细列表】支付分计划明细列表,会按照列表顺序为计划明细从1开始进行编号,使用计划明细时,必须按照编号依序使用。计划明细数量必须等于总扣费次数

属性

merchant_plan_no  必填 string(32)

【商户侧计划号】商户系统内部的计划单号,只能是数字、大小写字母_-* 且在同一个子商户号下唯一

请求示例

1curl -X POST \
2  https://api.mch.weixin.qq.com/v3/payscore/plan/payscore-plans \
3  -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4  -H "Accept: application/json" \
5  -H "Content-Type: application/json" \
6  -d '{
7    "service_id" : "2002000000000558128851361561536",
8    "appid" : "wxd678efh567hg6787",
9    "plan_name" : "瑜伽课20节",
10    "plan_duration" : 300,
11    "deduction_quantity" : 10,
12    "total_original_price" : 15000,
13    "total_actual_price" : 15000,
14    "plan_detail_list" : [
15      {
16        "original_price" : 15000,
17        "plan_discount_description" : "享受九折",
18        "actual_price" : 14000,
19        "plan_detail_name" : "第八节课"
20      }
21    ],
22    "merchant_plan_no" : "1234323JKHDFE1243252"
23  }'
24

应答参数

200 OK

plan_id  必填 string(32)

【支付分计划ID】用户签约的计划所对应的支付分计划ID


service_id  必填 string(32)

【计划所属服务】计划所属服务ID


mchid  必填 string(32)

【商户号】商户号


appid  必填 string(32)

【AppID】AppID


merchant_plan_no  必填 string(32)

【商户侧计划号】商户侧计划号


plan_name  必填 string(20)

【支付分计划名称】支付分计划名称


plan_duration  必填 integer

【支付分计划有效期(单位天)】支付分计划有效期(单位天),用户签约计划后当天起最长的有效天数


plan_state  必填 string

【支付分计划状态】支付分计划状态

可选取值:

  • NORMAL: 计划正常进行中,可以签约

  • STOP: 计划停止,无法签约,已签约的计划可以继续完成服务


total_original_price  必填 integer

【支付分计划原总金额(单位分)】支付分计划原价总金额(单位分)


deduction_quantity  必填 integer

【支付分计划扣费次数】支付分计划扣费次数,对应计划明细数


total_actual_price  必填 integer

【支付分计划实际扣费总金额(单位分)】支付分计划实际扣费总金额(单位分)


plan_detail_list  选填 array[object]

【支付分计划明细列表】支付分计划明细列表,明细数量和扣费次数一致

属性

stop_mchid  选填 string(32)

【终止方商户号】操作终止计划的商户号


stop_time  选填 string(32)

【终止时间】使用 rfc3339 所定义的 date-time 格式,使用北京时间(+08:00),格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC8小时,即北京时间)。例如:2023-09-06T19:29:58+08:00表示,北京时间2023年9月6日 19点29分58秒。

应答示例

200 OK

1{
2  "plan_id" : "01000033210000324638000000376258",
3  "service_id" : "2002000000000558128851361561536",
4  "mchid" : "1900000109",
5  "appid" : "wxd678efh567hg6787",
6  "merchant_plan_no" : "1234323JKHDFE1243252",
7  "plan_name" : "瑜伽课20节",
8  "plan_duration" : 10,
9  "plan_state" : "NORMAL",
10  "total_original_price" : 15000,
11  "deduction_quantity" : 10,
12  "total_actual_price" : 140000,
13  "plan_detail_list" : [
14    {
15      "plan_detail_no" : 1,
16      "plan_detail_name" : "第8节课",
17      "original_price" : 15000,
18      "plan_discount_description" : "享受九折优惠",
19      "actual_price" : 14000
20    }
21  ],
22  "stop_mchid" : "1900000109",
23  "stop_time" : "2021-05-20T13:29:35.120+08:00"
24}
25

 

错误码

公共错误码

状态码

错误码

描述

解决方案

400

PARAM_ERROR

参数错误

请根据错误提示正确传入参数

400

INVALID_REQUEST

HTTP 请求不符合微信支付 APIv3 接口规则

请参阅 接口规则

401

SIGN_ERROR

验证不通过

请参阅 签名常见问题

500

SYSTEM_ERROR

系统异常,请稍后重试

请稍后重试

业务错误码

状态码

错误码

描述

解决方案

400

INVALID_REQUEST

计划扣费次数和计划明细条数不一致

请确认待创建的支付分计划填写的扣费次数和计划详情数量是否一致

400

INVALID_REQUEST

前一笔实际扣费金额需大于等于后一笔实际扣费金额

请确认每一个计划明细的实际扣费金额必须小于等于上一个计划明细的实际扣费金额

400

PARAM_ERROR

计划明细中每一笔原扣费金额需要大于等于实际扣费金额

请确认每一个计划详情中的实际扣费金额必须小于等于本计划详情中的原扣费金额

400

INVALID_REQUEST

计划扣费金额和计划明细中扣费金额之和不一致

请核对计划的实际扣费总金额和每一个计划明细的实际扣费金和相同

400

INVALID_REQUEST

计划原扣费金额和计划明细中原扣费金额之和不一致

请核对计划的原扣费总金额和每一个计划明细的原扣费金和相同

400

PARAM_ERROR

总实付金额不能为0

请检查待创建的计划的总实付金额和原金额必须大于0

400

INVALID_REQUEST

无效的AppID,请检查AppID是否正确

检查填写的AppID是否合法

400

INVALID_REQUEST

商户和AppID未绑定

检查传入的AppID和调用API的商户是否有绑定关系

400

INVALID_REQUEST

商户暂无权限使用此服务

请检查调用方商户是否入驻了支付分服务

400

INVALID_REQUEST

此服务无按计划确认权限

请检查传入的支付分服务是否开通按计划确认权限

400

INVALID_REQUEST

实付金额必须小于最大风险金

请检查每一个计划明细的实付金额是否小于等于支付分服务规定的最大风险金

400

INVALID_REQUEST

计划的最长持续时间不能超过服务规定的计划最长时间

请检查待创建支付分计划的有效期是否小于等于服务规定的计划最长持续时间

400

INVALID_REQUEST

计划的最大扣费次数不能超过服务规定的最大扣费次数

请检查待创建支付分计划的扣费次数是否小于等于服务规定的最大扣费次数

400

INVALID_REQUEST

支付分计划单号已被使用,请检查

该商户侧计划号已经创建了对应支付分计划,且本次请求参数和已创建计划不一致,如需创建新的支付分计划请更换商户侧计划号重试

400

PARAM_ERROR

签约计划详情序号不能重复

请核对签约计划对应的计划详情列表的商户侧单号信息中每一个计划明细序号不重复

400

PARAM_ERROR

商户侧计划明细使用订单号不能重复

请核对签约计划对应的计划详情列表的商户侧单号信息中每一个计划明细序号对应的商户侧计划明细使用订单号不重复

400

INVALID_REQUEST

发起签约的计划不存在

请检查传入的支付分计划号,或先创建一个支付分计划

403

NOAUTH

商户只能发起自身创建计划的签约

请检查待签约的计划创建商户是否是本次发起签约的商户

403

NOAUTH

服务ID和待签约计划所属服务ID不一致

请检查待签约的计划创建时的支付分服务和本次发起签约的支付分服务是否一致

400

INVALID_REQUEST

当前计划状态无法发起签约

请检查发起签约的计划状态是否为NORMAL

400

INVALID_REQUEST

发起签约时填写的计划详情数量和计划不一致

请检查签约计划对应的计划详情列表数量和待签约计划详情数量是否一致,确保每一个计划明细都有对应的商户侧计划明细使用订单号

400

INVALID_ORDER_STATE

单据状态错误

确认操作是否符合流程

400

INVALID_REQUEST

请求参数符合参数格式,但不符合业务规则

请确认相同单号是否使用了不同的参数

400

ORDER_CANCELED

单据已取消

当前状态无需操作

400

ORDER_DONE

订单已完成

当前状态无需操作

429

FREQUENCY_LIMITED

频率超限

请求量不要超过接口调用频率限制

 

 

反馈
咨询
目录
置顶