微信免密支付

更新时间:2024-11-21 15:10:22

代扣签约

商户可以通过请求此接口唤起微信委托代扣的页面,页面样例见案例与规范。

用户在微信的页面中完成代扣签约后,微信会同时将签约信息通过异步通知的方式通知给商户后台。如果用户放弃签约或签约失败则不通知。

  • URL:pay/partner/authsign
  • Method:POST

请求参数

参数名称 类型 长度 必填 说明
pay_ver String 3 Y 版本号,当前版本110
pay_type String 3 Y 请求类型,010微信,020 支付宝,当前只支持微信
merchant_no String 15 Y 商户号
terminal_id String 8 Y 终端号
sub_appid String 32 N 微信子商户appid
request_serial String 12 Y 请求序列号.商户请求签约时的序列号,商户侧须唯一。序列号主要用于排序,不作为查询条件,纯数字。长度不超过12位
plan_id String 28 Y 模板id
contract_code String 32 Y 签约协议号,商户侧的签约协议号,由商户生成
contract_display_account String 32 Y 用户账户展示名称,签约用户的名称,用于页面展示,参数值不支持UTF8非3字节编码的字符,例如表情符号,所以请勿传微信昵称到该字段
sign_channel String 1 Y 签约渠道:0 公众号 1 小程序
notify_url String 128 Y 回调通知url,并urlEncode(get请求拼接需要urlEncode,签名拼接不需要urlEncode)
return_web String 1 N 返回web,1表示返回签约页面的referer url, 0 或不填或获取不到referer则不返回; 跳转referer url时会自动带上参数from_wxpay=1
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换

返回参数

参数名称 类型 长度 必填 说明
return_code String 2 Y 业务响应码,01成功 02失败
return_msg String 128 Y 业务响应描述
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换
result_code String 2 N 业务处理响应码,01成功 02失败
merchant_no String 15 N 商户号
terminal_id String 8 N 终端号

sign_channel为0时返回下列参数

参数名称 类型 长度 必填 说明
sign_url String 128 Y 公众号签约地址

sign_channel为1时返回下列参数

注意:

请求完这个接口得到的下列返回参数直接去调微信小程序免密签约,参数值不用做变化

参数名称 类型 长度 必填 说明
appid String 32 Y 微信签约小程序appid
mch_id String 32 Y 商户号
sub_mch_id String 32 Y 子商户号
sub_appid String 32 N 微信子商户appid
plan_id String 28 Y 模板id
contract_code String 32 Y 签约协议号,商户侧的签约协议号,由商户生成
contract_display_account String 32 Y 用户账户展示名称,签约用户的名称,用于页面展示,参数值不支持UTF8非3字节编码的字符,例如表情符号,所以请勿传微信昵称到该字段
notify_url String 128 Y HTTP或者HTTPS开头的回调通知url ,不需要对值进行urlencode
request_serial String 12 Y 商户请求签约时的序列号。序列号主要用于排序,不作为查询条件,纯数字。长度不超过12位
timestamp String 32 Y 时间戳,系统当前时间,定义规则详见时间戳,示例:1414488825
sign String 32 Y 签名

签约回调通知

Method: POST

请求参数

参数名称 类型 长度 必填 说明
return_code String 2 Y 业务响应码,01成功 02失败
return_msg String 128 Y 业务响应描述
result_code String 2 Y 业务处理响应码,01成功 02失败
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换
merchant_name String 32 Y 商户名称
merchant_no String 15 Y 商户号
terminal_id String 8 Y 终端号
plan_id String 28 Y 模板id
contract_code String 32 Y 签约协议号,商户侧的签约协议号,由商户生成
openid String 32 Y 用户标识,Appid下,用户的唯一标识
sub_openid String 32 N 用户子标识,sub_appid下,用户的唯一标识
change_type String 32 Y 变更类型ADD--签约 DELETE--解约,商户可通过该字段判断是签约回调还是解约回调
contract_id String 32 Y 委托代扣协议id,签约成功后,微信返回的委托代扣协议id
contract_expired_time String 19 N 协议到期时间,协议到期时间,当change_type为ADD时有返回,示例:2016-07-01 10:00:00
contract_termination_mode String 1 N 协议解约方式,当change_type为DELETE时有返回 0-未解约 1-有效期过自动解约 2-用户主动解约 3-商户API解约 4-商户平台解约 5-注销
request_serial String 12 Y 请求序列号.商户请求签约时的序列号,商户侧须唯一。序列号主要用于排序,不作为查询条件,纯数字。长度不超过12位

返回参数

参数名称 类型 长度 必填 说明
return_code String 2 Y 业务响应码,01成功 02失败
return_msg String 128 Y 返回信息提示,“签名失败”,“参数格式校验错误"等

查询签约关系

查询签约关系接口提供单笔签约关系查询,共支持三种模式的查询:

查询方式一:使用微信返回的委托代扣协议contract_id进行查询

查询方式二:plan_id+contract_code模式:传入模板id和委托代扣协议号进行查询

  • URL:pay/partner/querycontract
  • Method:POST

请求参数

参数名称 类型 长度 必填 说明
pay_ver String 3 Y 版本号,当前版本110
pay_type String 3 Y 请求类型,010微信,020 支付宝,当前只支持微信
merchant_no String 15 Y 商户号
terminal_id String 8 Y 终端号
sub_appid String 32 N 微信子商户appid
plan_id String 28 N 模板id
contract_code String 32 N 签约协议号,商户侧的签约协议号,由商户生成
contract_id String 32 N 委托代扣协议id,签约成功后,微信返回的委托代扣协议id
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换

返回参数

参数名称 类型 长度 必填 说明
return_code String 2 Y 业务响应码,01成功 02失败
return_msg String 128 Y 业务响应描述
result_code String 2 Y 业务处理响应码,01成功 02失败
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换
merchant_name String 32 Y 商户名称
merchant_no String 15 Y 商户号
terminal_id String 8 Y 终端号
request_serial String 12 Y 请求序列号.商户请求签约时的序列号,商户侧须唯一。序列号主要用于排序,不作为查询条件,纯数字。长度不超过12位
contract_id String 32 Y 委托代扣协议id,签约成功后,微信返回的委托代扣协议id
plan_id String 28 Y 模板id
contract_code String 32 Y 签约协议号,商户侧的签约协议号,由商户生成
contract_display_account String 40 Y 用户账户展示名称,签约用户的名称,用于页面展示
contract_state String 1 Y 协议状态,0-已签约 1-未签约
contract_signed_time String 19 Y 协议签署时间 yyyy-MM-dd HH:mm:ss
contract_expired_time String 19 N 协议到期时间yyyy-MM-dd HH:mm:ss
contract_terminated_time String 1 N 协议解约时间yyyy-MM-dd HH:mm:ss当contract_state=1时,该值有效
contract_termination_mode String 1 N 当contract_state=1时,该值有效 0-未解约 1-有效期过自动解约 2-用户主动解约 3-商户API解约 4-商户平台解约 5-注销
contract_termination_remark String 1 N 解约备注,当contract_state=1时,该值有效
openid String 32 Y 用户标识,Appid下,用户的唯一标识
sub_openid String 32 N 用户子标识,sub_appid下,用户的唯一标识

申请解约

商户与用户的签约关系有误或者商户主动要求与用户解除之前的签约协议时可调用此接口完成解约。目前商户侧支持两种模式的解约:

1)contract_id模式:使用委托代扣协议id完成解约

2)plan_id+contract_code模式:使用模板id和委托代扣协议号完成解约

URL:pay/partner/deletecontract

Method: POST

请求参数

参数名称 类型 长度 必填 说明
pay_ver String 3 Y 版本号,当前版本110
pay_type String 3 Y 请求类型,010微信,020 支付宝,当前只支持微信
merchant_no String 15 Y 商户号
terminal_id String 8 Y 终端号
sub_appid String 32 N 微信子商户appid
plan_id String 28 N 模板id
contract_code String 32 N 签约协议号,商户侧的签约协议号,由商户生成
contract_id String 32 N 委托代扣协议id,签约成功后,微信返回的委托代扣协议id
contract_termination_remark String 256 Y 解约备注,解约原因的备注说明,如:签约信息有误,须重新签约
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换

返回参数

参数名称 类型 长度 必填 说明
return_code String 2 Y 业务响应码,01成功 02失败
return_msg String 128 Y 业务响应描述
result_code String 2 Y 业务处理响应码,01成功 02失败
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换
merchant_name String 32 Y 商户名称
merchant_no String 15 Y 商户号
terminal_id String 8 Y 终端号
contract_id String 32 Y 委托代扣协议id,签约成功后,微信返回的委托代扣协议id
plan_id String 28 Y 模板id
contract_code String 32 Y 签约协议号,商户侧的签约协议号,由商户生成

申请扣款

委托代扣可应用于定期扣款或需事后扣款以期提高效率的场景。例如但不限于,会员制缴费、水电煤缴费、黄钻绿钻增值服务、打车类软件、停车场或高速公路无人缴费、理财通基金定投、信用卡还款等通过用户授权给商户,进行委托扣款的场景。

注:扣费请求首先按签约协议中记录的优先支付方式扣费,否则依次按以下顺序扣费:零钱、信用卡、借记卡

注意:对于自动续费的代扣申请,微信将延迟24小时进行扣款(首次签约可在签约后12小时内立即扣款成功,不受此规则限制)

  • URL:pay/partner/pappayapply
  • Method:POST

请求参数

参数名称 类型 长度 必填 说明
pay_ver String 3 Y 版本号,当前版本110
pay_type String 3 Y 请求类型,010微信,020 支付宝,当前只支持微信
merchant_no String 15 Y 商户号
terminal_id String 8 Y 终端号
terminal_trace String 32 Y 终端流水号,填写商户系统的订单号
terminal_time String 14 Y 终端交易时间,yyyyMMddHHmmss
sub_appid String 32 N 微信子商户appid
total_fee String 12 Y 金额,单位分
order_body String 128 Y 订单描述
goods_tag String 32 N 订单优惠标记,代金券或立减优惠功能的参数
attach String 128 N 附加数据,原样返回
contract_id String 32 Y 委托代扣协议id,签约成功后,微信返回的委托代扣协议id
receipt String 8 N 电子发票入口开放标识,Y,传入Y时,支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能,传此字段才可生效
notify_url String 128 Y 外部系统通知地址
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换

返回参数

参数名称 类型 长度 必填 说明
return_code String 2 Y 业务响应码,01成功 02失败
return_msg String 128 Y 业务响应描述
result_code String 2 N 业务处理响应码,01成功 02失败
merchant_name String 40 N 商户名称
merchant_no String 15 N Y商户号
terminal_id String 8 N 终端号
terminal_trace String 32 N 终端流水号,商户系统的订单号,扫呗系统原样返回
terminal_time String 14 N 终端交易时间,yyyyMMddHHmmss,全局统一时间格式
total_fee String 12 N 金额,单位分
out_trade_no String 32 N 利楚唯一订单号
attach String 128 N 附加数据,原样返回
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换

交易通知

Method: POST

请求参数

参数名称 类型 长度 必填 说明
return_code String 2 Y 业务响应码,01成功 02失败
return_msg String 128 Y 业务响应描述
result_code String 2 Y 业务处理响应码,01成功 02失败
pay_type String 3 Y 请求类型,010微信,当前只支持微信
pay_ver String 3 Y 版本号 201
user_id String 40 Y 付款方用户id,“微信openid”、
merchant_name String 32 Y 商户名称
merchant_no String 15 Y 商户号
terminal_id String 8 Y 终端号
terminal_trace String 32 Y 终端流水号,商户系统的订单号,扫呗系统原样返回
terminal_time String 14 Y 终端交易时间,yyyyMMddHHmmss,全局统一时间格式
pay_trace String 32 N 当前支付终端流水号,与pay_time同时传递
pay_time String 14 N 当前支付终端交易时间,yyyyMMddHHmmss,全局统一时间格式,与pay_trace同时传递
total_fee String 12 Y 金额,单位分
end_time String 12 Y 支付完成时间,yyyyMMddHHmmss,全局统一时间格式
out_trade_no String 32 Y 利楚唯一订单号
channel_trade_no String 32 Y 微信官方订单号
attach String 32 Y 附加数据,原样返回
trade_state String 12 N 交易状态 SUCCESS:支付成功;REFUND:转入退款;ACCEPTED:已受理,未支付;PAY_FAIL支付失败(其他原因,如银行返回失败); PAY_BACK:用户归还欠款(仅当本单由微信支付预先垫付资金,即bank_type=BPA时有可能发生) 【pay_ver=201时返回该字段】
bank_type String 32 N 银行类型,扣款成功时返回,注:使用BPA表示本笔订单由微信支付预先垫付资金 【pay_ver=201时返回该字段】
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换

返回参数

参数名称 类型 长度 必填 说明
return_code String 2 Y 业务响应码,01成功 02失败
return_msg String 128 Y 返回信息提示,“签名失败”,“参数格式校验错误"等

查询订单

  • URL:pay/partner/queryorder
  • Method:POST

请求参数

参数名称 类型 长度 必填 说明
pay_ver String 3 Y 版本号,当前版本110
pay_type String 3 Y 请求类型,010微信,020 支付宝,当前只支持微信
merchant_no String 15 Y 商户号
terminal_id String 8 Y 终端号
terminal_trace String 32 Y 终端流水号,填写商户系统的订单号
terminal_time String 14 Y 终端交易时间,yyyyMMddHHmmss
pay_trace String 32 N 当前支付终端流水号,与pay_time同时传递
pay_time String 14 N 当前支付终端交易时间,yyyyMMddHHmmss,全局统一时间格式,与pay_trace同时传递
out_trade_no String 32 Y 订单号,查询凭据,填利楚订单号、微信订单号任意一个
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换

返回参数

参数名称 类型 长度 必填 说明
return_code String 2 Y 业务响应码,01成功 02失败
return_msg String 128 Y 业务响应描述
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换
result_code String 2 N 业务处理响应码,01成功 02失败
merchant_name String 40 N 商户名称
merchant_no String 15 N 商户号
terminal_id String 8 N 终端号
terminal_trace String 32 N 终端流水号,商户系统的订单号,扫呗系统原样返回
terminal_time String 14 N 终端交易时间,yyyyMMddHHmmss,全局统一时间格式
trade_state String 12 N 交易状态 SUCCESS:支付成功;REFUND:转入退款;ACCEPTED:已受理,未支付;PAY_FAIL支付失败(其他原因,如银行返回失败); PAY_BACK:用户归还欠款(仅当本单由微信支付预先垫付资金,即bank_type=BPA时有可能发生)
bank_type String 32 N 银行类型,扣款成功时返回,注:使用BPA表示本笔订单由微信支付预先垫付资金 【pay_ver=201时返回该字段】
receipt_fee String 12 N 实收金额,单位分【pay_ver=201时返回该字段】
total_fee String 12 N 金额,单位分
end_time String 12 N 支付完成时间,yyyyMMddHHmmss,全局统一时间格式
out_trade_no String 32 N 利楚唯一订单号
channel_trade_no String 32 N 微信官方订单号
attach String 32 N 附加数据,原样返回

申请退款

  • URL:pay/partner/refund
  • Method:POST

请求参数

参数名称 类型 长度 必填 说明
pay_ver String 3 Y 版本号,当前版本110
pay_type String 3 Y 请求类型,010微信,020 支付宝,当前只支持微信
merchant_no String 15 Y 商户号
terminal_id String 8 Y 终端号
terminal_trace String 32 Y 终端流水号,填写商户系统的订单号
terminal_time String 14 Y 终端交易时间,yyyyMMddHHmmss
pay_trace String 32 N 当前支付终端流水号,与pay_time同时传递
pay_time String 14 N 当前支付终端交易时间,yyyyMMddHHmmss,全局统一时间格式,与pay_trace同时传递
out_trade_no String 32 Y 订单号,查询凭据,填利楚订单号、微信订单号任意一个
refund_fee String 12 Y 退款金额,单位分
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换

返回参数

参数名称 类型 长度 必填 说明
return_code String 2 Y 业务响应码,01成功 02失败
return_msg String 128 Y 业务响应描述
key_sign String 32 Y 签名字符串,拼装所有必传参数+令牌,UTF-8编码,32位md5加密转换
result_code String 2 N 业务处理响应码,01成功 02失败
merchant_name String 40 N 商户名称
merchant_no String 15 N 商户号
terminal_id String 8 N 终端号
terminal_trace String 32 N 终端流水号,商户系统的订单号,扫呗系统原样返回
terminal_time String 14 N 终端交易时间,yyyyMMddHHmmss,全局统一时间格式
refund_fee String 12 N 退款金额,单位分
end_time String 12 N 支付完成时间,yyyyMMddHHmmss,全局统一时间格式
out_trade_no String 32 N 唯一订单号
out_refund_no String 32 N 唯一退款单号

© 利楚商服 2020 All rights reserved.