支付场景之移动APP

        支付机构人士认为移动支付受青睐,得益于其操作简单便捷、无需带现金或银行卡的特点;同时,市场主体的优惠促销活动多、移动支付应用场景不断拓展等,对用户习惯的培养也起到重要作用。因此移动APP支付成了广大老板与技术人员所需考虑不可或缺的一环。
                移动APP端支付情况主要分为微信支付、支付宝支付、银联支付和快捷支付。其中,微信支付与支付宝支付是平日中使用最多的两种方式。但微信和支付宝本身不支持直接跳转个人APP进行支付,所以我们跟微信公众号和支付宝生活号进行间接连通,需要商家先在微信和支付宝注册相关APPID信息,详细内容查看支付场景之H5页面_微信服务号支付 h5-CSDN博客哦。

        那么我们牛卡派今天就来抛砖迎玉,简单聊一聊移动APP中银联支付和快捷支付的支付流程,有需求的可以私信我哦~~

 银联统一在线收银台

1.产品介绍

1.1简介

商户开通银联统一收银台后,消费者在向商户付款时选择银联,支持消费者在手机端用已安装的银行APP完成支付。银联会提供旗下多种支付工具,如各银行APP、云闪付APP、银联手机闪付等。
银联线上统一收银台支持银行

1.2应用场景

主要用于线上交易场景,如电商购物、旅游平台等

2.接入前准备

2.1商务准备

  1. 选择接入模式
  2. 服务商模式:指服务商与三方支付机构签约,服务商通过接口或控台方式完成商户入网。具体流程:服务商完成协议签署后,服务商需要准备好入网材料提供给支付机构人员,支付机构收到后会尽快为服务商发起入网申请,待审核通过入网成功后,服务商联系人将收到短信通知控台账号及密码。
  3. 客户要准备好线上业务场景,快捷支付可以集成到APP的线上场景中。
  4. 在系统完成商户进件入网
  5. 选择接入功能并准备相关材料
  •         服务商模式:联系支付机构人员申请开通服务商银联统一在线收银台支付权限,开通后给予所属商户开通相关权限;
  • 2.2对接准备

  • 第一步:密钥获取

联调之前需要先获取公私钥;

第二步:公共参数获取

登录服务商/商户控台后,可在开发设置-开发者信息中,获取sys_id,product_id参数信息;

  • 3.开发支持

  • 3.1对接规范

调用接口,均采取POST形式提交,数据格式统一为JSON格式。

  • 3.2系统调用流程

  • 3.2.1交易流程
  • 银联APP支付Android开发包下载 | iOS开发包下载
  • 银联统一在线收银台接口

    入参需关注以下字段:

    参数中文名说明
    pay_card_no交易银行卡卡号卡号是密文(公私钥加解密);
    card_number_lock卡号锁定标识1-表示锁定卡,锁定指只能用pay_card_no卡号做支付。默认为空-不锁定;
    ebank_en_abbr直通模式的银行标识目前支付以下银行:
    CCB-中国建设银行,
    CNCB-中信银行,
    CEB-光大银行,
    PAB-平安银行;
    front_url前端跳转地址支付成功后跳转页面,格式:http或https开头
    notify_url异步通知地址交易结果异步通知地址,格式:http或https开头

    同步返参需关注字段:

    参数中文名说明
    union_order_no银联受理订单号银联受理订单,银联移动支付系统返回该流水号,调用支付控件时使用
    示例值:562616342321571143110

    异返参需关注字段:

    参数中文名说明
    union_order_no银联受理订单号银联受理订单,银联移动支付系统返回该流水号,调用支付控件时使用
    示例值:562616342321571143110
    trans_status交易状态绑卡状态,I:初始化,P:处理中,S:成功,F:失败
    bank_code银行返回码N
    bank_message银行返回信息示例值:成功[0000000]
  • 3.2.2退款流程
  • 完整的交易流程还要包括退款。由于用户或者商户的原因需要退款时,商户可以通过本接口将支付款退还给用户,退款成功资金将原路返回。

    关注以下请参:

    参数中文名必填说明
    org_req_date原交易请求日期Y用户发起支付的日期
    org_req_seq_id原交易请求流水号C商户系统发给系统的指令流水号
    org_nkp_seq_id原交易全局流水号C系统生成的系统流水号
    ord_amt申请退款金额Y退款金额<=原交易金额
  • 原交易请求流水号、原交易全局流水号、原交易微信支付宝的商户单号三选一即可;
  • 退款金额不能大于交易金额;由于接口支持多次部分退款,多次退款场景下退款总额不能高于原交易金额;
  • 退款也是以异步返回的成功或失败状态为最终结果;
  • 一些特殊场景下退款时效可能比较长,注意接口描述文档中的退款时效说明;
3.2.3对账流程

为了满足商户财务的对账需求,系统提供了对账功能。

方案一:控台下载;

方案二:接口获取;参见交易结算对账单查询接口

接口下载的对账文件包括以下四类:

  • 日对账单类型:包括日结算对账单、日分账对账单、日出金对账单;
  • 日交易数据:主要是各种支付交易记录;
  • 月结算对账单:按月汇总的结算对账单;
  • 月交易数据:按月汇总支付交易记录;
3.2.4异步通知

针对交易结果,系统会通过异步消息的方式通知客户系统。 

调用接口时上送的异步通知地址为http/https路径:服务器为POST回调,默认超时时间为5秒,超时后会重试3次;不支持HTTP重定向;服务器对应答不是200~300之间的错误,会默认重试3次;异步通知服务器对HTTPS不认证验签和ALLOW_ALL_HOSTNAME_VERIFIER;如商户自定义通知端口,请使用8000-9005内端口,否则无法通知;URL 上请勿附带参数;异步回调请求编码集为:UTF-8;收到通知后请返回状态码“200”,响应异步通知。

注意事项:

同样的异步消息可能会通知多次,因此接收异步消息的处理需做好幂等,保障多次接收到同样的消息处理后结果不变。

在实现异步消息接收的同时,都建议您在重要的业务环节,通过反查接口确认 非终态 支付订单的状态,以保证在发生异步消息延迟或无法送达情况下的支付结果一致性。

4.API接口

4.1银联统一在线收银台接口

应用场景

第一种商户APP场景:调用银联统一在线收银台接口获取“银联受理订单号”,随后调用SDK唤起消费者在手机端已安装的云闪付APP或银行APP完成支付。

第二种场景:商户小程序、H5页面可以通过拉起银联云闪付小程序方式进行支付。
注意:

  • 使用云闪付小程序支付每笔都需要验证支付密码+短信验证码;
  • 银联线上收银台虽然同时支持APP支付与云闪付小程序支付,但需要分别申请,且会生成两个不同的银联商户号。目前系统不支持一个商户号同时绑定多个银联商户号,如果同时开通需要入驻两个系统商户。
公共参数
  • 公共请求参数

参数

中文名

定义

长度

必填

说明

sys_id

系统号

String

32

Y

渠道商/商户的XXX_id
(1)当主体为渠道商时,此字段填写渠道商XXX_id;
(2)当主体为直连商户时,此字段填写商户XXX_id;
 

product_id

产品号

String

32

Y

三方机构分配的产品号,示例值:YYYY

sign

加签结果

String

512

Y

签名,对报文整体签名

data

请求数据

JSON

Y

业务请求参数

  • 公共返回参数

参数

中文名

定义

长度

必填

说明

sign

签名

String

512

Y

签名,对报文整体签名

data

响应内容体

JSON

N

业务返回参数

请求参数

data

参数

中文名

定义

长度

必填

说明

XXX_id

商户号

String

32

Y

系统配置的商户号

req_date

请求日期

String

8

Y

格式:yyyyMMdd;

req_seq_id

请求流水号

String

64

Y

示例值:2021091708126665001

trans_amt

订单金额

String

14

Y

单位元;示例值:1000.00

card_number_lock

卡号锁定标识

String

1

N

1-表示锁定卡,锁定指只能用pay_card_no卡号做支付。默认为空-不锁定;示例值:1

ebank_en_abbr

直通模式的银行标识

String

40

N

示例值:CCB;目前支付以下银行:
CCB-中国建设银行,
CNCB-中信银行,
CEB-光大银行,
PAB-平安银行;

order_desc

商品描述

String

32

Y

示例值:商品描述

pay_card_no

交易银行卡卡号

String

1024

N

卡号是密文(公私钥加解密);

pay_card_type

支付卡类型

String

1

N

D:借记账户,C:贷记账户;示例值:D

time_expire

订单失效时间

String

14

N

格式:yyyyMMddHHmmss;示例值:20220925102245
工商银行订单失效时间处理方式不同,订单失效时间有效期时间要大于1小时。

acct_split_bunch

分账对象

String

N

jsonObject格式; 参见分账对象

risk_check_data

安全信息

String

Y

jsonObject格式;参见安全信息

front_url

前端跳转地址

String

120

N

支付成功后跳转,格式:http或https开头,
示例值 Service.com is for sale | www.brandforce.com

notify_url

异步通知地址

String

512

N

交易结果异步通知地址,格式:http或https开头
示例值 Service.com is for sale | www.brandforce.com

remark

备注

String

1024

N

示例值:备注

pay_scene

支付场景

String

16

N

U_APP:银联云闪付APP;默认
U_JSAPI :银联云闪付微信公众号
U_MINIAPP:银联云闪付微信小程序
示例值:U_MINIAPP

third_pay_data

三方支付数据

String

2048

C

jsonObject;pay_scene为云闪付公众号与云闪付小程序时必填

delay_acct_flag

延时标记

String

1

N

是否延时交易;Y:延迟,N:实时(默认);示例值:Y
延时交易要调【交易确认】接口资金才能进入收款方账户,否则会停留在延时账户中。

请求示例

{
    "sys_id": "6666000108840829",
    "product_id": "YYYY",
    "data": {
        "time_expire": "",
        "trans_amt": "0.11",
        "risk_check_data": "{\"base_station\":\"7\",\"latitude\":\"4\",\"ip_addr\":\"172.28.52.52\",\"longitude\":\"3\"}",
        "remark": "merPriv11",
        "order_desc": "通用性商品1",
        "notify_url": "https://www.service.com/getresp",
        "ebank_en_abbr": "",
        "card_number_lock": "",
        "req_seq_id": "20240425100908566nb0amagjqxbcqd",
        "req_date": "20240425",
        "pay_card_no": "",
        "XXX_id": "6666000109100000",
        "delay_acct_flag": "Y",
        "front_url": "https://www.service.com/getresp"
    },
    "sign": "cYr0BZWTThN0v7NK22aRzWwsUUuJ4V3GYFrPtj4lotIsNKKlpx+o6IySTD+lyz8fREUM8IxaPRWKqRpzDxOSTDw7Q7c6RM8FKhEE64e1Nj0tNCFnERSd0RrdpobLOxLI1fZUwYp1XhUczOX2Y6ZL10KvyJjvw9TvZXxtb+LlnnVvLvkKMnBXwwPLQ65TY2be6ht3II1TXfCOrrCpNIljQfvD+cdR6bSrTFo8V4p8WYSUGKFckLIkyMrZdKMO7Trr5hCNisByCfAyjmqmStcK+gEe1u/oogVH7FlqBrAtzu0thQMylbrqJKdgP9m5ZdvIyTKMTO6impWa3fsXDZfcDQ=="
}
返回参数

同步返回

data

参数

中文名

定义

长度

必填

说明

resp_code

业务返回码

String

8

Y

参见业务返回码,示例值:00000000

resp_desc

业务返回信息

String

512

Y

参见业务返回信息,示例值:例处理成功

XXX_id

机构商户号

String

32

Y

示例值:6666000109800000

product_id

机构产品号

String

32

Y

系统分配的产品号;示例值:YYY

req_date

请求日期

String

8

Y

格式:yyyyMMdd;示例值:20221130

req_seq_id

请求流水号

String

128

Y

示例值:2021091708126665001

trans_amt

订单金额

String

14

Y

单位:元;示例值:1.23

bank_order_no

支付渠道订单编号

String

64

N

机构发往银行(银联)的订单编号,即银联流水号;
示例值:202111050936518a4wzkU0A0

channel_type

支付渠道类型

String

64

N

U-银联,N-网联,D-直连,O-其他;示例值:U

XXX_seq_id

全局流水号

String

128

N

示例值:00290TOP1GR210919004230P853ac13262200000

union_order_no

银联受理订单号

String

32

N

银联受理订单,银联移动支付系统返回该流水号,调用支付控件时使用
示例值:562616342321571143110

bank_code

银行返回码

String

64

N

示例值:00

bank_desc

银行返回信息

String

256

N

示例值:成功[0000000]

notify_sync_url

应答跳转的地址

String

4096

N

示例值:Service.com is for sale | www.brandforce.com

pay_info

支付信息

String

128

N

示例值:766339499274020784818

union_app_id

云闪付小程序id

String

128

N

示例值:wx3cbe919f36710d1c

union_path

云闪付小程序path

String

1024

N

云闪付小程序path,示例值:/pages/CQPApplet/index?tn=517962138420828734108

acct_split_bunch

分账对象

jsonObject

N

参见分账对象

unconfirm_amt

待确认总金额

String

14

N

单位元,需保留小数点后两位,示例值:1.00

confirmed_amt

已确认总金额

String

14

N

单位元,需保留小数点后两位,示例值:1.00

异步返回

参数

中文名

定义

长度

必填

说明

sub_resp_code

返回码

String

8

Y

参见业务返回码,示例值:00000000

sub_resp_desc

返回描述

String

512

Y

参见业务返回信息,示例值:交易成功

req_seq_id

请求流水号

String

64

Y

示例值:2021091708126665001

req_date

请求日期

String

8

Y

格式:yyyyMMdd;示例值:20221120

product_id

机构产品号

String

32

Y

机构分配的产品号;示例值:YYYY

XXX_id

机构商户号

String

32

Y

机构分配的商户号;示例值:6666000108800000

trans_amt

订单金额

String

14

N

单位:元;示例值:1.23

union_order_no

银联受理订单

String

32

N

银联受理订单,银联移动支付系统返回该流水号,调用支付控件时使用
示例值:562616342321571143110

pay_card_no

交易银行卡卡号

String

1024

N

卡号是密文(公私钥加解密);示例值:

is_delay_acct

是否延时交易

String

1

N

0:实时;1:延时;示例值:0

is_div

是否分账交易

String

1

N

0:非分账交易;1:是分账交易;示例值:0

fee_flag

手续费扣款标志

String

1

N

1:外扣;2:内扣;示例值:2

acct_split_bunch

分账对象

jsonObject

N

参见分账对象

split_fee_info

分账手续费信息

String

2048

N

jsonObject格式

channel_type

支付渠道类型

String

1

N

U:银联;示例值:U

bank_order_no

支付渠道订单编号

String

32

N

机构发往银行(银联)的订单编号,即银联流水号;
示例值:202111050936518a4wzkU0A0

trans_stat

交易状态

String

1

N

I:处理中,P:处理中,S:成功,F:失败;示例值:S

mer_priv

商户私有域

String

1024

N

原样返回请求参数中的“remark”内容;示例值:备注

remark

备注

String

1024

N

示例值:

notify_sync_url

应答跳转的地址

String

4096

N

示例值:Service.com is for sale | www.brandforce.com

bank_code

银行返回码

String

32

N

示例值:00

bank_message

银行返回信息

String

32

N

示例值:成功[0000000]

pay_scene

支付场景

String

16

N

U_APP:银联云闪付APP;
U_JSAPI :银联云闪付微信公众号
U_MINIAPP:银联云闪付微信小程序
示例值:U_MINIAPP

app_id

小程序id

String

128

N

示例值:wx8c7d23e805a33666

union_app_id

云闪付小程序id

String

128

N

示例值:wx3cbe919f36710d1c

union_path

云闪付小程序path

String

1024

N

云闪付小程序path,

返回示例

{
    "data": {
        "bank_code": "00",
        "bank_desc": "成功[0000000]",
        "delay_acct_flag": "N",
        "XXX_seq_id": "0047default240314175148P0020a8ec41b00000",
        "XXX_id": "6666000105470650",
        "notify_sync_url": "",
        "pay_info": "509921812139102192104",
        "product_id": "HSK",
        "req_date": "20240314",
        "req_seq_id": "20240312937123720211710409908",
        "resp_code": "00000000",
        "resp_desc": "交易成功",
        "trans_amt": "1.00",
        "trans_stat": "P",
        "union_app_id": "wx3cbe919f36710d1c",
        "union_path": "/pages/CQPApplet/index?tn=509921812139102192104"
    }
}

4.2线上交易查询接口

应用场景

用于查询单笔线上交易状态及明细。支持快捷、网银、手机wap、银联APP、银行大额支付、全域资金管理的入账确认交易查询。
注意:不支持聚合扫码接口生成的微信、支付宝、银联二维码等交易的查询。

适用对象
开通了快捷、网银、手机wap、银联统一在线收银台的商户

公共参数
  • 公共请求参数

参数

中文名

定义

长度

必填

说明

sys_id

系统号

String

32

Y

渠道商/商户的XXX_id
(1)当主体为渠道商时,此字段填写渠道商XXX_id;
(2)当主体为直连商户时,此字段填写商户XXX_id;
 

product_id

产品号

String

32

Y

三方机构分配的产品号,示例值:YYYY

sign

加签结果

String

512

Y

签名,对报文整体签名

data

请求数据

JSON

Y

业务请求参数

  • 公共返回参数

参数

中文名

定义

长度

必填

说明

sign

签名

String

512

Y

签名,对报文整体签名

data

响应内容体

JSON

N

业务返回参数

请求参数

参数

中文名

定义

长度

必填

说明

XXX_id

商户号

String

32

Y

系统生成的商户号,示例值:6666000109812123

org_req_date

原交易请求日期

String

8

Y

格式:yyyyMMdd;示例值:20220125

org_XXX_seq_id

原交易返回的全局流水号

String

128

C

原交易请求流水号、原交易返回的全局流水号至少要送其中一项;
示例值:00290TOP1GR210919004230P853ac13262200000

org_req_seq_id

原交易请求流水号

String

128

C

原交易请求流水号、原交易返回的全局流水号至少要送其中一项;
示例值:2021091708126665001

pay_type

原交易支付类型

String

20

N

QUICK_PAY:快捷支付、快捷充值(查询快捷交易必填)
ONLINE_PAY:网银支付、网银充值
WAP_PAY:手机WAP支付
UNION_PAY:银联APP统一支付
QUICK_PAY_APPLY:银行卡分期申请
QUICK_PAY_CONFIRM:银行卡分期确认
TRANSFER_ACCT:网银转账
示例值:TRANSFER_ACCT
注意:不支持聚合扫码接口生成的微信、支付宝、银联二维码等交易的查询。

{
    "sys_id": "6666000108800000",
    "product_id": "YYYY",
    "data": {
        "org_req_date": "20240401",
        "org_req_seq_id": "295700155481522176",
        "org_XXX_seq_id": "00600000000240401100725P864ac13645d00000",
        "pay_type": "QUICK_PAY",
        "XXX_id": "6666000109133323"
    },
    "sign": "AzNRSezJedL519PO1cHhGhVrDc/0vrNlp8NMkYcuSjeenObqGWUcIq9akL4xlMncgYBSqjBBI6je2JFtLBcMU9tbKN2hlcxjxvlbNZVbzibikW2v7fO9ZkRobqV4IvICJ9nqeCf0IE1p5KHhO/uMz+BDoctrWzlCRpA/mDAQIFRea0Egfg5sYouMBXyR8HymjaA2X9Hwh2/e/jzIZArQPV1M1bB1OE6EF6cCkqX8DN7b9F0t4XeNPjLvakfCHDXh46fRMflKu7+Uxzoyq5NR45Ygsmd3jOFQhm4c3QwJCCAh9ft6TcxYHF9BYw4NZqCmLwJHMg3Sp+8z+kpKSze51Q=="
}
返回参数

参数

中文名

定义

长度

必填

说明

resp_code

业务返回码

String

8

Y

参见业务返回码,示例值:00000000

resp_desc

业务返回信息

String

512

Y

业务返回信息,示例值:交易成功

XXX_id

商户号

String

32

Y

系统配置的商户号,示例值:6666000109812123

org_req_date

原交易请求日期

String

8

Y

格式:yyyyMMdd;示例值:20221022

org_req_seq_id

原交易请求流水号

String

128

Y

示例值:2021091708126665001

org_XXX_seq_id

交易返回的全局流水号

String

128

N

示例值:00470topo1A211015160805P090ac132fef00000

pay_type

支付类型

String

20

N

ONLINE_PAY_B2B:B2B网银支付
ONLINE_PAY_B2C :B2C网银支付
ONLINE_RECHARGE_B2B:B2B网银充值
ONLINE_RECHARGE_B2C :B2C网银充值
TRANSFER_ACCT:网银转账
WAP_PAY:手机WAP支付
QUICK_PAY:快捷支付
QUICK_RECHARGE:快捷充值
UNION_PAY:银联APP统一支付
QUICK_PAY_APPLY:银行卡分期申请
QUICK_PAY_CONFIRM:银行卡分期确认
示例值:UNION_PAY

trans_amt

交易金额

String

14

Y

单位元,需保留小数点后两位,示例值:1.00

unconfirm_amt

待确认总金额

String

14

N

待确认总金额; 单位元,需保留小数点后两位,示例值:1.00 ;

confirmed_amt

已确认总金额

String

14

N

已确认总金额;单位元,需保留小数点后两位,示例值:1.00;

trans_stat

交易状态

String

1

N

P:处理中 S:成功 F:失败;示例值:S

debit_flag

借贷记标识

String

1

N

D:借记 C:贷记;示例值:C

pay_card_no

交易银行卡号

String

1024

N

卡号为密文;交易类型为银联统一支付UNION_PAY、网银转账TRANSFER_ACCT会返回值;
示例值:b9LE5R……NVor1DwvPbe0mkQ==

fee_amt

手续费金额

String

14

Y

单位元,需保留小数点后两位,示例值:1.00

union_order_no

银联受理订单号

String

32

N

银联移动支付系统返回该流水号,调用支付控件时使用;示例值:562616342321571143110

acct_split_bunch

分账对象

jsonObject

N

参见分账对象

split_fee_info

分账手续费信息

String

2048

N

jsonObject格式

bank_extend_param_data

银行附加参数

jsonObject

N

参见银行附加参数

bank_order_no

支付渠道订单编号

String

64

N

系统发往银行(银联/网联)的订单编号,即银联网联流水号;示例值:202111050936518a4wzkU0A0

avoid_sms_flag

免短标签

String

1

N

3:快捷免短信验证;示例值:3

user_XXX_id

用户客户号

string

32

N

系统分配的用户号;示例值:6666000109800000

in_acct_flag

入账标识

string

16

N

示例值:YDNUCSV2JV7BAXYN

remittance_order_id

支付通道流水号

string

128

N

银行来账通知中的汇款订单号;示例值:20230214172250defaultit656505067

acct_id

账户号

string

32

N

系统分配的账户号,
①:若用户客户号为空,则用商户号的账户号;
②:若用户客户号有值,则用用户客户号的账户号
示例值:F00300900

bank_card_no

银行卡号

string

2048

N

成功交易才会返回,返回密文;原文最大为19位,密文最大长度为2048;
示例值:b9LE5RccVVLChrHgo9lvp……PhWhjKrWg2NPfbe0mkQ==

certificate_name

持卡人姓名

string

64

N

成功交易才会返回,

batch_no

批次号

String

16

N

通过批次方式入账的才会有批次号;示例值:2022101213203001

combinedpay_data

补贴支付信息

String

N

jsonArray字符串;

combinedpay_fee_amt

补贴部分的手续费

String

14

N

单位元,需保留小数点后两位,示例值:1.00

remark

备注

String

256

N

示例值:备注

bank_code

通道返回码

String

32

N

示例值:00000000

bank_desc

通道返回描述

String

200

N

示例值:成功

bankMode

银行模式

String

8

N

BFJ-备付金模式,默认
SNYH-苏宁银行模式

formUrl

提交页面地址

String

256

N

bank_mode为银行模式时,提交页面跳转地址,商户可以直接跳转到当前页面进行选择卡号进行下单,获取付款方信息
 

sub_base_acct_no

收款方缴费账号

String

32

N

收款方账户号;示例值:A14186488

sub_base_acct_no_name

收款方缴费账号名称

String

200

N

收款方账户名;

sub_bank_name

收款方银行名称

String

200

N

{
    "data": {
        "resp_code": "00000000",
        "resp_desc": "查询成功",
        "XXX_id": "6666000103400000,
        "org_req_date": "20211209",
        "org_req_seq_id": "5424414614661726",
        "trans_stat": "P",
        "trans_amt": "0.01",
        "org_XXX_seq_id": "0047default211209144152P545c0a821ef00000",
        "bank_code": "05",
        "bank_desc": "交易已受理,请稍后查询交易结果[6154037]",
        "debit_flag": "D",
        "pay_card_no": "OLMq1zfOniLEl4LE+UpXaiueWAcTsxNPEvd6XmHZtg/JOln3sfDnA5H1RuPsJPl4RElbrsCpnBqVlibzJrSblompFvT7HetHjalhMLb/DphYgLd77kLn47uzUQCY8mTwcTgthG1Of3MPuR6VYOeJBrzmgPyNSjfqO74RfD5F3X3TYYHuv/2umnSGzfZ18hyEeth75jQiS5e30O45iq5iEnJgVXu/ucPFnIfwIF0romjlgiBHNW/alhrZSOfYs08tUprvCoREL8jS8RazKA7XCXveEtGn4mHsNl4rPVDPKqI5kl1RQyPfv/KCaLZgkLTwR/jmElPtZTeyHX6A7XdAKA==",
        "pay_type": "UNION_PAY",
        "fee_amt": "0.00",
        "remark": "merPriv11",
        "acct_split_bunch": "{\"acct_infos\":[{\"div_amt\":\"0.01\",\"huifu_id\":\"6666000103423237\"}]}",
        "avoid_sms_flag": ""
    }
}

快捷支付

1. 产品介绍

1.1 简介

持卡人无需登录网上银行,可直接输入卡面信息及持卡人身份信息。根据安全规则通过验证银行预留的手机接收校验码完成签约或支付,是一种便捷、快速、安全的付款方式,主要用于PC网站或移动端银行卡支付。

1.2 应用场景

商户如果想在自己的业务场景中摆脱对微信、支付宝的依赖,获取用户信息以便提供更好的服务可以选择快捷。或者将快捷深度融合到自己的业务场景中,比如整合自己的积分、营销服务等,可以选择快捷。系统提供了两种接口模式:

  • 纯接口模式:包括绑卡、短信预校验、支付申请、支付确认等一系列接口,可以灵活地打造操作流程整合进业务流程中。
  • 带页面的快捷接口,一个接口拉起支付页面完成整个支付流程,简单方便。

2.接入前准备

2.1商务准备

  1. 选择接入模式
  2. 服务商模式:指服务商与三方支付机构签约,服务商通过接口或控台方式完成商户入网。具体流程:服务商完成协议签署后,服务商需要准备好入网材料提供给支付机构人员,支付机构收到后会尽快为服务商发起入网申请,待审核通过入网成功后,服务商联系人将收到短信通知控台账号及密码。
  3. 客户要准备好线上业务场景,快捷支付可以集成到PC网站、APP、H5页面的线上场景中。
  4. 在系统完成商户进件入网
  5. 选择接入功能并准备相关材料
  •         服务商模式:联系支付机构人员申请开通服务商快捷支付权限,开通后给予所属商户开通相关权限;
  • 2.2对接准备

  • 第一步:密钥获取

联调之前需要先获取公私钥;

第二步:公共参数获取

登录服务商/商户控台后,可在开发设置-开发者信息中,获取sys_id,product_id参数信息;

  • 第三步:业务开通及配置
  • 控台开通
  • 服务商控台【商户管理】【信息查询】【商户信息(新)】【业务信息编辑】【支付功能】开通快捷支付、配置相关费率

  • 接口开通
  • 调用 商户业务开通 接口开通快捷支付。

  • 3.开发支持

  • 3.1对接规范

调用接口,均采取POST形式提交,数据格式统一为JSON格式。

  • 3.2确认业务配置

  • 控台查询快捷支付是否配置完成

    1.通过服务商控台【商户信息查询】【产品信息TAB页面】查看【快捷】

    2.商户控台【我的信息】

    3.通过商户详细信息查询接口来确认相关配置。

  • 3.3系统调用流程

  • 3.3.1交易流程
  • 快捷绑卡申请接口

    入参需关注以下字段:

    参数

    中文名

    必填

    说明

    order_id

    订单号

    Y

    绑卡申请订单号

    out_cust_id

    商户用户id

    Y

    用户在商户侧注册商户生成的用户号;同一用户不要反复注册不同的用户id;

    card_id

    银行卡号

    Y

    需要密文传输,使用系统RSA公钥加密(加密前64位,加密后最长2048位)

    card_name

    银行卡开户姓名

    Y

    需要密文传输,使用系统RSA公钥加密(加密前64位,加密后最长2048位)

    cert_id

    银行卡绑定身份证

    Y

    需要密文传输,使用系统RSA公钥加密(加密前64位,加密后最长2048位)

    card_mp

    银行卡绑定手机号

    Y

    需要密文传输,使用系统RSA公钥加密(加密前64位,加密后最长2048位)

    vip_code

    CVV2

    C

    信用卡交易专用需要密文传输。

    expiration

    卡有效期

    C

    信用卡交易专用,格式:MMYY,需要密文传输;

    dc_type

    卡的借贷类型

    N

    C:信用卡,D:借记卡,S:准贷记,U:未知卡;

    protocol_no

    挂网协议编号

    C

    授权信息(招行绑卡需要上送);

    快捷绑卡确认接口

    入参需关注以下字段:

    参数

    中文名

    必填

    说明

    order_id

    订单号

    Y

    快捷绑卡申请接口的入参绑卡申请订单号order_id

    verify_code

    验证码

    Y

    短信验证码

    返参需关注字段:

     参数 

     中文名 

     说明 

     trans_status

     交易状态

     绑卡状态,I:初始化,P:处理中,S:成功,F:失败

     cust_id

     用户号

     绑卡成功后会获取用户客户号,

     token_no

     绑卡序列号

     后续快捷支付以token_no代表已绑定的卡

    快捷支付申请

    入参需关注以下字段:

    参数

    中文名

    必填

    说明

    card_bind_id

    绑卡id

    Y

    绑卡成功后会获取绑卡id,

    user_huifu_id

    用户客户号

    Y

    绑卡成功后会获取用户客户号,

    order_type

    订单类型

    N

    P:支付; R:充值, 默认:P

    time_expire

    订单失效时间

    N

    格式:yyyyMMddHHmmss,注:工商银行需传90min以上方能成功

    返参需关注字段:

    参数

    中文名

    说明

    avoid_sms_flag

    免短标签

    如是 3,则无需调用确认接口

    快捷支付确认

    入参需关注以下字段:

    参数

    中文名

    必填

    说明

    sms_code

    短信验证码

    Y

    用户提供6位短信验证码;

    异步返回关注以下字段:

    参数

    中文名

    说明

    trans_stat

    交易状态

    I:处理中(初始化),P:处理中,S:成功,F:失败;

    acct_stat

    账务状态

    可能因为手续费不足的原因存在交易成功账务失败的情况。这种情况可以联系系统运营人员解决;

    3.3.2退款流程
  • 完整的交易流程还要包括退款。由于用户或者商户的原因需要退款时,商户可以通过本接口将支付款退还给用户,退款成功资金将原路返回。

    关注以下请参:

    参数

    中文名

    必填

    说明

    org_req_date

    原交易请求日期

    Y

    用户发起支付的日期

    org_req_seq_id

    原交易请求流水号

    C

    商户系统发给系统的指令流水号

    org_XXX_seq_id

    原交易全局流水号

    C

    机构生成的系统流水号

    ord_amt

    申请退款金额

    Y

    退款金额<=原交易金额

  • 原交易请求流水号、原交易全局流水号、原交易微信支付宝的商户单号三选一即可;
  • 退款金额不能大于交易金额;由于接口支持多次部分退款,多次退款场景下退款总额不能高于原交易金额;
  • 退款也是以异步返回的成功或失败状态为最终结果;
  • 一些特殊场景下退款时效可能比较长,注意接口描述文档中的退款时效说明;
3.3.3对账流程

为了满足商户财务的对账需求,系统提供了对账功能。

方案一:控台下载;

方案二:接口获取;参见交易结算对账单查询接口

接口下载的对账文件包括以下四类:

  • 日对账单类型:包括日结算对账单、日分账对账单、日出金对账单;
  • 日交易数据:主要是各种支付交易记录;
  • 月结算对账单:按月汇总的结算对账单;
  • 月交易数据:按月汇总支付交易记录;
3.3.4异步通知

针对交易结果,系统会通过异步消息的方式通知客户系统。 

调用接口时上送的异步通知地址为http/https路径:服务器为POST回调,默认超时时间为5秒,超时后会重试3次;不支持HTTP重定向;服务器对应答不是200~300之间的错误,会默认重试3次;异步通知服务器对HTTPS不认证验签和ALLOW_ALL_HOSTNAME_VERIFIER;如商户自定义通知端口,请使用8000-9005内端口,否则无法通知;URL 上请勿附带参数;异步回调请求编码集为:UTF-8;收到通知后请返回状态码“200”,响应异步通知。

注意事项:

同样的异步消息可能会通知多次,因此接收异步消息的处理需做好幂等,保障多次接收到同样的消息处理后结果不变。

在实现异步消息接收的同时,都建议您在重要的业务环节,通过反查接口确认 非终态 支付订单的状态,以保证在发生异步消息延迟或无法送达情况下的支付结果一致性。

由于快捷支付相关接口与银联收银台接口参数类似,所以这里就不多做介绍了。有需要的可以私信我们牛卡派哦~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值