API开发文档简介
本文阅读对象:使用 aapay 商户自服务系统的技术架构师、研发工程师、系统运维工程师。通过本文档,商户可了解 aapay 接入的技术、接入的产品业务、接入的流程、接入规范等信息,以便于商户顺利完成接入工作。
接入网关
请登录商户中心,API管理 开发文档中 查看网关地址和API对接参数。
统一下单接口
提交方式:POST
地址: 接入网关/Pay_Index.html
参数名称 参数含义 是否必填 参与签名参数说明
pay_memberid 商户号 平台分配商户号
pay_orderid 订单号 上送订单号唯一, 字符长度20
pay_applydate 提交时间 时间格式:2016-12-26 18:18:18
pay_bankcode 银行编码 在商户中心查询
pay_notifyurl 服务端通知 服务端返回地址.(POST返回数据)
pay_callbackurl 页面跳转通知 页面跳转返回地址(POST返回数据)
pay_amount 订单金额 单位:盧比
pay_md5sign MD5签名 请查看签名算法
pay_returntype 返回数据类型 填写:此參數填寫json將返回json数据結構形式
pay_expand 扩展参数 印度支付必填
印度支付:扩展参数必填参数说明
参数名称 参数含义
email 用户邮箱
contactName 真实姓名
phone 联系电话
contact 产品说明
注:extends字段具体需要上送哪些字段以及字段的含义,对接时请咨询平台方,如果不需要扩展字段则不传。不为空时,格式:先转化为JSON,接着进行Base64加密。印度支付必须加入扩展参数
当有传pay_returntype值时,返回json格式的结果:
参数名称 参数含义
code 200代表请求成功,其他返回失败
payurl 支付链接
msg 返回信息
异步通知
提交方式:POST
接收到服务器点对点通讯时,在页面输出“OK”( 没有双引号,OK 两个字母大写 ) ,否则会重复5次发送点对点通知.
参数名称 参数含义 是否必填 参与签名参数说明
memberid 商户编号 平台分配商户号
orderid 订单号 上送订单号唯一, 字符长度20
amount 订单金额
factamount 真实交易金额
transaction_id 交易流水号
datetime 交易时间
returncode 交易状态 00表示成功,其它表示失败
attach 扩展返回 商户附加数据返回
sign MD5签名
订单查询接口
提交方式:POST
地址: 接入网关/Pay_Trade_query.html
参数名称 参数含义 是否必填 参与签名参数说明
pay_memberid 商户编号
pay_orderid 商户订单号
pay_md5sign MD5签名
返回值
参数名称 参数含义 是否必填 参与签名参数说明
memberid 商户编号
returncode 请求状态 00表示成功,其它表示失败
data 订单信息(数据类型:集合)
sign MD5签名
返回值data参数
参数名称 参数含义 参数说明
orderid 商户订单号
transaction_id 平台订单号
amount 订单金额 单位:盧比
time_end 支付成功时间
trade_state 支付状态 SUCCESS:支付成功,NOTPAY:未支付
代付提交接口
提交方式:POST
提交地址:网关地址+/Payment_Dfpay_add.html
参数名称 参数含义 是否必填 参与签名参数说明
mchid 商户编号 平台分配商户号
out_trade_no 商户订单号 保证唯一值
money 订单金额 单位:盧比
accountname 开户名
cardnumber 银行卡号
notifyurl 服务端通知 服务端返回地址.(POST返回数据)
bankcode 代付方式 銀行代付,固定SBI,UPI代付填寫UPI(目前暫時只開放銀行)
ifsc IFSC 儅為銀行卡代付時此項必填,UPI時此列選填
extends 附加字段 扩展参数:name(用户姓名)、phone(用户手机号)、email(用户邮箱)
pay_md5sign MD5签名
注:extends字段具体需要上送哪些字段以及字段的含义,对接时请咨询平台方,如果不需要扩展字段则不传。不为空时,格式:先转化为JSON,接着进行Base64加密
例如:扩展字段为phone和idno,extends[phone]=13800138000,extends[idno]=111111111111111111。首先将extends转化为JSON格式得到{"phone":"13800138000","idno":"111111111111111111"},然后将此JSON字符串进行base64加密得到eyJwaG9uZSI6IjEzODAwMTM4MDAwIiwiaWRubyI6IjExMTExMTExMTExMTExMTExMSJ9,最终得到extends=eyJwaG9uZSI6IjEzODAwMTM4MDAwIiwiaWRubyI6IjExMTExMTExMTExMTExMTExMSJ9。
返回值
参数名称 参数含义 是否必填 参与签名参数说明
status 状态 成功:success 失败:error(不代表业务成功)
msg 状态描述
transaction_id 平台流水号 成功时返回
代付异步通知
提交方式:POST
参数名称 参数含义 是否必填 参与签名参数说明
ymoney 商户余额 商户余额
money 交易金额 交易金额
gmoney 交易前金额 交易前金额
datetime 交易时间 交易时间
transid 商户订单ID
orderid 平台订单ID
code 返回状态 200表示成功,其它表示失败
contentstr 交易说明
sign MD5签名
代付查询接口
提交方式:POST
提交地址:网关地址+/Payment_Dfpay_query.html
参数名称 参数含义 是否必填 参与签名参数说明
out_trade_no 商户订单号
mchid 商户号
pay_md5sign 签名
返回值
参数名称 参数含义 是否必填 参与签名参数说明
status 状态 success:请求成功(不代表业务成功),error:请求失败
msg 状态描述
mchid 商户号 status=success时返回
out_trade_no 商户订单号 status=success时返回
amount 金额 status=success时返回
transaction_id 平台流水号 status=success时返回
refCode 业务状态 status=success时返回
refMsg 业务描述 status=success时返回
success_time 成功时间 status=success,refCode=1时返回
sign MD5签名
refCode返回值
返回值 含义
1 成功
2 失败
3 处理中
4 待处理
5 审核驳回
6 待审核
7 交易不存在
8 未知状态
注:当status=success和refCode=1同时成立时才表示转账成功
签名算法
签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串。
第二步,在stringA最后拼接上key=keyvalue得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
stringSignTemp="pay_amount=pay_amount&pay_applydate=pay_applydate&pay_bankcode=pay_bankcode& pay_callbackurl=pay_callbackurl&pay_memberid=pay_memberid&pay_notifyurl=pay_notifyurl& pay_orderid=pay_orderid&key=key" sign=MD5(stringSignTemp).toUpperCase()
账户余额查询接口
提交方式:POST
接口地址:网关地址+/Payment_Dfpay_balance.html
参数名称 参数含义 是否必填 参与签名参数说明
mchid 商户编号 平台分配商户号
pay_md5sign MD5签名
返回值
参数名称 参数含义 是否必填 参与签名参数说明
status 状态 success:请求成功,error:请求失败
msg 状态描述
mchid 商户号 status=success时返回
balance 可提现余额 status=success时返回
blockedbalance 冻结余额 status=success时返回
pay_md5sign MD5签名
渠道编码
请登录商户中心,API管理 通道费率中 查看所属应用的支付通道编码。