Merge branch 'develop'

master
yixian 5 years ago
commit 02e4e184dc

@ -0,0 +1,6 @@
FROM nginx:alpine
COPY openapi/* /usr/share/nginx/html/
COPY default.conf /etc/nginx/conf.d/
EXPOSE 80

@ -0,0 +1,13 @@
server {
listen 80;
server_name _ default;
location / {
root /usr/share/nginx/html/;
index index.html;
}
location =/ {
rewrite / /cn/ redirect;
}
}

@ -0,0 +1,420 @@
orderBasic:
required:
- description
- currency
- price
properties:
description:
type: string
maxLength: 128
description: 订单标题最大长度128字符超出自动截取
price:
type: integer
description: 订单金额单位为货币最小单位例如100表示AUD1.00
currency:
type: string
enum:
- AUD
- CNY
notify_url:
type: string
description: 支付通知回调url详见支付通知api不填不会推送支付通知。收到通知回调后强烈建议先进行主动查询再进行确认。
operator:
type: string
description: 操作人员标识
orderWithChannel:
allOf:
- $ref: '#/orderBasic'
- properties:
channel:
type: string
description: 支付渠道,大小写敏感
enum:
- Alipay
- Wechat
type: object
required:
- channel
cardCustomerParam:
type: object
properties:
name:
type: string
description: 消费者姓名,不填会取持卡人姓名
postcode:
type: string
example: 2000
description: 澳大利亚邮编
address:
type: string
description: 地址,可使用收货地址
city:
type: string
example: Sydney
state:
type: string
example: VIC
country:
type: string
description: 2位国家代码
example: AU
cardCustomerInfo:
title: 卡信息
properties:
bank:
type: string
description: 发卡行,可能拿不到
card_type:
type: string
description: 卡类型
example: credit/debit
card_alias:
type: string
description: 截断卡号包含前6位和后3位
example: 424242...242
card_scheme:
description: 发卡组织
type: string
example: VISA/MASTER
card_country:
description: 发卡国家
type: string
example: AU
customer_id:
type: string
description: 当下单时tokenize=true或customer_id不为空时存在
orderBasicResponse:
type: object
properties:
return_code:
type: string
description: 执行结果
result_code:
type: string
description: SUCCESS表示创建订单成功EXISTS表示订单已存在
channel:
type: string
description: 支付渠道
partner_code:
type: string
description: 商户编码
full_name:
type: string
description: 商户注册全名
partner_name:
type: string
description: 商户名称
order_id:
type: string
description: RoyalPay订单ID同时也是支付渠道订单ID最终支付成功的订单ID可能不同
partner_order_id:
type: string
description: 商户订单ID
orderStatus:
type: object
properties:
return_code:
type: string
description: 执行结果
example:
SUCCESS
result_code:
type: string
description: |
订单状态
- PAYING: 等待支付
- CREATE_FAIL: 创建失败
- CLOSED: 已关闭
- PAY_FAIL: 支付失败
- PAY_SUCCESS: 支付成功
- PARTIAL_REFUND: 部分退款
- FULL_REFUND: 全额退款
如果需要可以用相同订单号再次发起支付单,支付成功或支付中的无法重复发起订单
enum:
- PAYING
- CREATE_FAIL
- CLOSED
- PAY_FAIL
- PAY_SUCCESS
- PARTIAL_REFUND
- FULL_REFUND
order_id:
type: string
description: RoyalPay订单ID同时也是支付渠道订单ID最终支付成功的订单ID可能不同
partner_order_id:
type: string
description: 商户订单ID
channel_order_id:
type: string
description: 渠道方(支付宝、微信)交易流水号
total_fee:
type: integer
description: 订单金额,单位是货币最小面值单位
real_fee:
type: integer
description: 实际支付金额,单位是货币最小面值单位(目前等于订单金额,为卡券预留)
currency:
type: string
description: 币种通常为AUD
rate:
type: number
description: 交易时使用的汇率1AUD=?CNY
pay_time:
type: string
format: 'date-time'
pattern: yyyy-mm-dd HH:mm:ss
description: 支付时间yyyy-MM-dd HH:mm:ssGMT+10
create_time:
type: string
format: 'date-time'
pattern: yyyy-mm-dd HH:mm:ss
description: 订单创建时间最新订单为准yyyy-MM-dd HH:mm:ssGMT+10
channel:
type: string
description: 支付渠道
customer_info:
anyOf:
- title: 支付宝用户
type: object
properties:
alipay_user_id:
type: string
description: 支付宝用户id
alipay_account:
type: string
description: 用户账号
- $ref: 'components_order.yml#/cardCustomerInfo'
refundStatus:
type: object
properties:
return_code:
type: string
description: 执行结果
example:
SUCCESS
result_code:
type: string
description: |
退款状态
- WAITING: 正在提交
- CREATE_FAILED: 提交失败
- SUCCESS: 提交成功,等待入账
- FAILED: 退款失败
- FINISHED: 退款成功,已入账
enum:
- WATING
- CREATE_FAILED
- SUCCESS
- FAILED
- FINISHED
refund_id:
type: string
description: RoyalPay退款单号
partner_refund_id:
type: string
description: 商户提交的退款单号
amount:
type: integer
description: 退款金额,单位是货币最小单位
currency:
type: string
description: 币种
example:
AUD
transactionItem:
type: object
properties:
transaction_time:
type: string
format: 'date-time'
pattern: yyyyMMddHHmmss
description: 交易时间格式yyyyMMddHHmmssGMT+10
partner_code:
type: string
description: 订单关联商户
order_id:
type: string
description: RoyalPay订单ID
partner_order_id:
type: string
description: 商户订单ID
channel_order_id:
type: string
description: 渠道方订单号
refund_id:
type: string
description: RoyalPay退款单号仅退款或退款失败补正存在
partner_refund_id:
type: string
description: 商户系统提交退款ID(仅退款或退款失败补正)
gateway:
type: integer
description: |
下单接口
- 0: RoyalPay POS机付款码(扫描客户展示的付款码)
- 1: RoyalPay POS机聚合支付码(客户扫描POS展示的二维码)
- 2: RoyalPay 商户静态码
- 3: QRCode 网关
- 4: JSAPI 网关
- 5: 第三方POS付款码网关
- 6: 第三方POS聚合支付码网关
- 7: RoyalPay 商户静态码(已停用)
- 8: H5网关
- 9: WEB网关
- 10: SDK订单
- 11: RoyalPay账单码
- 12: 小程序
- 13: 原生二维码订单
- 14: RoyalPay账单链接
- 15: 原生JSAPI
- 16: 卡支付预订单
- 17: 卡支付订单
- 18: DirectDebit
channel:
type: string
description: 下单渠道
type:
type: string
description: 流水类别
enum:
- Credit
- Debit
currency:
type: string
description: 订单币种
example:
AUD
total_amount:
type: integer
description: 订单总金额,单位是货币最小单位
input_amount:
type: integer
description: 订单输入金额,单位是货币最小单位
customer_payment_amount:
type: integer
description: 用户实际支付金额,单位是货币最小单位
settle_amount:
type: integer
description: 结算金额币种为AUD单位是货币最小单位
transfer_amount:
type: integer
description: 打款金额(结算金额-手续费-GST币种为AUD单位是货币最小单位
surcharge:
type: integer
description: 手续费币种为AUD单位是货币最小单位
gst:
type: integer
description: GST金额币种为AUD单位是货币最小单位
exchange_rate:
type: number
description: 使用汇率
remark:
type: string
description: 备注
customInfo:
type: object
properties:
report_id:
type: string
description: RoyalPay海关单号
client_report_id:
type: string
description: 商户申请报关单号
report_status:
type: string
description: 报关单状态
enum:
- PROCESSING
- SUBMITED
- FAILED
- SUCCESS
channel:
type: string
description: 支付渠道
custom:
type: string
description: 海关编号
mch_custom_no:
type: string
description: 商户在海关备案的编号
mch_custom_name:
type: string
description: 商户海关备案名称
order_id:
type: string
description: RoyalPay订单号
transaction_id:
type: string
description: 支付渠道订单号
order_currency:
type: string
description: 币种
order_amount:
type: number
description: 订单金额
report_time:
type: string
format: 'date-time'
description: 报关时间
creation_date:
format: 'date-time'
type: string
description: 报关单创建时间
last_update_date:
type: string
format: 'date-time'
description: 更新时间
error_code:
type: string
description: 错误代码
error_msg:
type: string
description: 错误返回的信息描述
verify_department:
type: string
description: 验核机构
verify_department_trade_id:
type: string
description: 验核机构交易流水号
sub_orders:
type: array
items:
type: object
properties:
sub_order_no:
type: string
description: 商户子订单号
fee_type:
type: string
description: 币种代码
default: CNY
enum:
- CNY
order_fee:
type: number
description: 子订单金额
transport_fee:
type: number
description: 子订单物流金额
verify_department:
type: string
description: 验核机构
verify_department_trade_id:
type: string
description: 验核机构交易流水号
report_status:
type: string
description: 报关单状态
enum:
- PROCESSING
- SUBMITED
- FAILED
- SUCCESS
error_code:
type: string
description: 错误代码
error_msg:
type: string
description: 错误返回的信息描述

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 180 KiB

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 184 KiB

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="394.5px" height="103.5px" viewBox="-30 -10 364.5 83.5" enable-background="new -30 -10 364.5 83.5" xml:space="preserve">
<g>
<path fill="#ED6B2C" d="M28.416,39.902"/>
</g>
<path fill="#ED6B2C" d="M48.971,50.572c0-3.301-2.532-6.009-5.758-6.29l-7.385-15.836c-0.144-0.309-0.044-0.674,0.234-0.871
c2.709-1.91,4.48-5.06,4.48-8.626c0-5.817-4.711-10.535-10.525-10.544h-0.019c-0.033,0-0.066,0.002-0.098,0.002V8.405h-11.83
c-0.388,0-0.703,0.315-0.703,0.703v4.919c0,0.388,0.315,0.703,0.703,0.703H29.9v0h0.018c2.288,0,4.236,1.779,4.318,4.065
c0.085,2.401-1.837,4.375-4.219,4.375H6.825V6.794c0-0.259-0.21-0.469-0.469-0.469H5.185C2.598,6.325,0.5,8.423,0.5,11.01v38.214
c0,0.049,0.002,0.096,0.003,0.144C0.502,49.415,0.5,49.461,0.5,49.508c0,3.718,2.748,6.794,6.325,7.304
c0.344,0.049,0.696,0.075,1.054,0.075c0.358,0,0.71-0.026,1.054-0.075c2.213-0.316,4.107-1.614,5.231-3.437
c0.693-1.111,1.094-2.419,1.094-3.82V37.948H29.9v-0.002c0.003,0,0.006,0,0.009,0c0.4,0.003,0.664-0.418,0.495-0.781l-2.392-5.136
c-0.115-0.248-0.364-0.406-0.637-0.406H9.636c-0.388,0-0.703,0.315-0.703,0.703v0.001l0,17.139c0,0.551-0.404,1.042-0.953,1.093
c-0.629,0.058-1.156-0.433-1.156-1.049V29.496h22.067c0.273,0,0.522,0.158,0.637,0.406l7.951,17.051
c-0.719,1.026-1.141,2.272-1.141,3.619c0,3.301,2.532,6.009,5.76,6.29l0.002,0.005l0.007-0.005c0.18,0.016,0.361,0.026,0.546,0.026
c2.139,0,4.027-1.064,5.17-2.689l0.009-0.005l-0.002-0.005C48.549,53.163,48.971,51.917,48.971,50.572z"/>
<path fill="#ED6B2C" d="M8.933,20.38V4.685C8.933,2.098,11.031,0,13.619,0h16.398c10.621,0.009,19.198,8.747,18.949,19.429
c-0.139,5.878-2.994,11.102-7.332,14.487c-0.282,0.22-0.696,0.122-0.847-0.202l-2.242-4.806c-0.127-0.272-0.069-0.597,0.15-0.803
c2.402-2.257,3.925-5.427,3.972-8.962c0.091-7.063-5.608-12.819-12.65-12.819H15.853c-0.329,0-0.595,0.266-0.595,0.595v13.46
c0,0.388-0.315,0.703-0.703,0.703H9.636C9.247,21.083,8.933,20.767,8.933,20.38z"/>
<g>
<path fill="#ED6B2C" d="M336.166,39.902"/>
</g>
<path fill="#ED6B2C" d="M84.512,25.763c-0.117-0.199-0.237-0.396-0.361-0.59c-0.78-1.075-2.047-1.776-3.476-1.776
c-2.373,0-4.296,1.923-4.296,4.294c0,0.792,0.213,1.534,0.59,2.172c0.021,0.037,0.047,0.077,0.07,0.117
c0.832,1.394,1.312,3.027,1.312,4.77c0,5.144-4.17,9.314-9.312,9.314c-5.144,0-9.314-4.17-9.314-9.314
c0-5.142,4.17-9.312,9.314-9.312c0.295,0,0.586,0.014,0.874,0.042c0.166,0.014,0.33,0.033,0.492,0.059
c0.084,0.005,0.169,0.007,0.255,0.007c2.371,0,4.294-1.923,4.294-4.296c0-2.071-1.466-3.8-3.418-4.205c-0.002,0-0.007,0-0.012-0.002
c-0.23-0.033-0.461-0.059-0.696-0.082c-0.588-0.059-1.185-0.089-1.79-0.089c-9.888,0-17.902,8.016-17.902,17.902
s8.014,17.902,17.902,17.902c9.886,0,17.902-8.016,17.902-17.902C86.942,31.488,86.056,28.41,84.512,25.763z"/>
<path fill="#ED6B2C" d="M115.331,17.272l-9.279,21.534l-9.33-21.536c-0.111-0.257-0.365-0.423-0.645-0.423h-7.493
c-0.337,0-0.564,0.345-0.43,0.655l13.655,30.979h0.073l-2.078,4.822c-0.393,0.912-1.291,1.503-2.284,1.503h-4.501
c-0.388,0-0.703,0.315-0.703,0.703v7.028c0,0.388,0.315,0.703,0.703,0.703h4.947c3.635,0,6.921-2.162,8.36-5.501L123.9,17.502
c0.133-0.309-0.094-0.654-0.43-0.654h-7.493C115.696,16.848,115.442,17.015,115.331,17.272z"/>
<path fill="#ED6B2C" d="M158.638,44.233V17.478c0-0.388-0.315-0.703-0.703-0.703h-15.11c-9.943,0-17.994,8.097-17.92,18.057
c0.073,9.881,8.264,17.785,18.145,17.785h0.844c2.319,0,4.199-1.88,4.199-4.199v0c0-2.319-1.88-4.199-4.199-4.199h-0.902
c-5.252,0-9.688-4.296-9.655-9.548c0.016-2.595,1.074-4.945,2.778-6.649c1.717-1.717,4.088-2.778,6.709-2.778h7.377v21.8
c0,3.105,2.517,5.622,5.622,5.622h4.45c0.259,0,0.469-0.21,0.469-0.469v-7.496c0-0.259-0.21-0.469-0.469-0.469H158.638z"/>
<path fill="#ED6B2C" d="M158.622,44.255"/>
<path fill="#ED6B2C" d="M175.502,44.233V4.87c0-0.388-0.315-0.703-0.703-0.703h-7.028c-0.388,0-0.703,0.315-0.703,0.703v39.363
v2.808c0,3.103,2.515,5.62,5.618,5.622l4.221,0.003c0.388,0,0.703-0.315,0.703-0.703v-7.028c0-0.388-0.315-0.703-0.703-0.703
H175.502z"/>
<path fill="#ED6B2C" d="M183.972,9.094v42.869c0,0.388,0.315,0.703,0.703,0.703h7.028c0.388,0,0.703-0.315,0.703-0.703V17.645
c0-0.388,0.315-0.703,0.703-0.703h13.109c4.011,0,7.262,3.251,7.262,7.262v0c0,4.011-3.251,7.262-7.262,7.262h-5.329
c-2.361,0-4.275,1.914-4.275,4.275v0c0,2.361,1.914,4.275,4.275,4.275h5.212c8.733,0,15.813-7.079,15.813-15.813v0
c0-8.733-7.079-15.813-15.813-15.813h-21.425C184.287,8.391,183.972,8.706,183.972,9.094z"/>
<path fill="#ED6B2C" d="M259.848,44.233V17.478c0-0.388-0.315-0.703-0.703-0.703h-15.11c-9.943,0-17.994,8.097-17.92,18.057
c0.073,9.881,8.264,17.785,18.145,17.785h0.844c2.319,0,4.199-1.88,4.199-4.199v0c0-2.319-1.88-4.199-4.199-4.199h-0.902
c-5.252,0-9.688-4.296-9.655-9.548c0.016-2.595,1.074-4.945,2.778-6.649c1.717-1.717,4.088-2.778,6.709-2.778h7.377v21.8
c0,3.105,2.517,5.622,5.622,5.622h4.45c0.259,0,0.469-0.21,0.469-0.469v-7.496c0-0.259-0.21-0.469-0.469-0.469H259.848z"/>
<path fill="#ED6B2C" d="M295.507,17.236l-9.279,21.534l-9.33-21.536c-0.111-0.257-0.365-0.423-0.645-0.423h-7.493
c-0.337,0-0.564,0.345-0.43,0.655l13.655,30.979h0.073l-2.078,4.822c-0.393,0.912-1.291,1.503-2.284,1.503h-4.501
c-0.388,0-0.703,0.315-0.703,0.703V62.5c0,0.388,0.315,0.703,0.703,0.703h4.947c3.635,0,6.921-2.162,8.36-5.501l17.573-40.237
c0.133-0.309-0.094-0.654-0.43-0.654h-7.493C295.871,16.811,295.618,16.978,295.507,17.236z"/>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>RoyalPay Document</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">
<!--
ReDoc doesn't change outer page styles
-->
<style>
body {
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<redoc spec-url='document.yml' expand-responses="200" hide-download-button></redoc>
<script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"></script>
</body>
</html>

@ -0,0 +1,410 @@
orderBasic:
required:
- description
- currency
- price
properties:
description:
type: string
maxLength: 128
description: Order title(Max 128 characters. Will cut automatically if too long.)
price:
type: integer
description: Order price. Minimal unit of currency. eg, 100 for AUD 1.00
currency:
type: string
enum:
- AUD
- CNY
notify_url:
type: string
description: payment notification url. for details please visit notify api. will not post notifications if leave it null. Recommended to call order query api to confirm order status when received notification.
operator:
type: string
description: mark of operator
orderWithChannel:
allOf:
- $ref: '#/orderBasic'
- properties:
channel:
type: string
description: order channel. case sensitive
enum:
- Alipay
- Wechat
type: object
required:
- channel
cardCustomerParam:
properties:
name:
type: string
description: customer name. will use card holder name if leave it empty
postcode:
type: string
example: 2000
address:
type: string
city:
type: string
example: Sydney
state:
type: string
example: VIC
country:
type: string
description: 2-character country code
example: AU
cardCustomerInfo:
type: object
title: Card customer info
properties:
bank:
type: string
description: bank name who issued the card. may be empty
card_type:
type: string
description: card type
example: credit/debit
card_alias:
type: string
description: part of card number. for customers to recognize which card they used
example: 424242...242
card_scheme:
description: card scheme who issued the card
type: string
example: VISA/MASTER
card_country:
description: nation code who issued the card
type: string
example: AU
customer_id:
type: string
description: customer id. if you provided customer_id param or passed tokenize=true param. it will appear
orderBasicResponse:
type: object
properties:
return_code:
type: string
description: execute result
result_code:
type: string
description: SUCCESS/EXISTS all means success. EXISTS means the order_id was not first time to commit
channel:
type: string
description: payment channel
partner_code:
type: string
description: merchant code
full_name:
type: string
description: merchant full name
partner_name:
type: string
description: merchant name
order_id:
type: string
description: RoyalPay order ID, Will be channel order ID same time.
partner_order_id:
type: string
description: order id applied by merchant
orderStatus:
type: object
properties:
return_code:
type: string
description: execute result
example:
SUCCESS
result_code:
type: string
description: |
order status code
- PAYING: waiting for payment
- CREATE_FAIL: creation failed(final status, can be actived again if submitted another create order with same order id)
- CLOSED: order closed(final status, can be actived again if submitted another create order with same order id)
- PAY_FAIL: payment failed(final status, can be actived again if submitted another create order with same order id)
- PAY_SUCCESS: payment success(final status)
- PARTIAL_REFUND: payment success and partial refunds happened(final status)
- FULL_REFUND: payment success and was full refunded(final status)
If necessary. you can use same order id to call create order api in same gateway. but when origin order is paid or paying status will be failure
enum:
- PAYING
- CREATE_FAIL
- CLOSED
- PAY_FAIL
- PAY_SUCCESS
- PARTIAL_REFUND
- FULL_REFUND
order_id:
type: string
description: RoyalPay order ID, Will be channel order ID same time.
partner_order_id:
type: string
description: order id applied by merchant
channel_order_id:
type: string
description: transaction id from payment channel
total_fee:
type: integer
description: order amount. minimal unit of the currency.
real_fee:
type: integer
description: customer actual paid amount. minimal unit of the currency.(equals to total_fee at this moment. in case there were some discounts in the future)
currency:
type: string
rate:
type: number
description: exchange rate of trading. 1AUD=?CNY
pay_time:
type: string
format: 'date-time'
pattern: yyyy-mm-dd HH:mm:ss
description: paid time(yyyy-MM-dd HH:mm:ss, GMT+10)
create_time:
type: string
format: 'date-time'
pattern: yyyy-mm-dd HH:mm:ss
description: order creation time(yyyy-MM-dd HH:mm:ss, GMT+10)
channel:
type: string
description: payment channel
customer_info:
anyOf:
- description: Alipay User Info
title: Alipay Users
type: object
properties:
alipay_user_id:
type: string
description: Alipay user id
alipay_account:
type: string
description: user account
- $ref: 'components_order.yml#/cardCustomerInfo'
refundStatus:
type: object
properties:
return_code:
type: string
description: Execute result
example:
SUCCESS
result_code:
type: string
description: |
Refund status
- WAITING: Submitting
- CREATE_FAILED: Submit failed
- SUCCESS: Submit success. waiting for bank processing(for Wechat, it's final status)
- FAILED: Refund failed
- FINISHED: Refund success (final status)
enum:
- WATING
- CREATE_FAILED
- SUCCESS
- FAILED
- FINISHED
refund_id:
type: string
description: RoyalPay Refund ID
partner_refund_id:
type: string
description: Refund id submitted by merchant
amount:
type: integer
description: refund amount. minimal unit of the currency.
currency:
type: string
example:
AUD
transactionItem:
type: object
properties:
transaction_time:
type: string
format: 'date-time'
pattern: yyyyMMddHHmmss
description: trading time, format is yyyyMMddHHmmss, GMT+10
partner_code:
type: string
description: transaction related partner code
order_id:
type: string
description: RoyalPay order id
partner_order_id:
type: string
description: merchant order id
channel_order_id:
type: string
description: channel order id
refund_id:
type: string
description: RoyalPay refund id (only exists on refund or refund failure payback transactions)
partner_refund_id:
type: string
description: merchant submitted refund id (only exists on refund or refund failure payback transactions)
gateway:
type: integer
description: |
gateway
- 0: RoyalPay EftPOS with payment code (scanning payment code provided by customer)
- 1: RoyalPay EftPOS with collection code (customer scan qr code provided by EftPOS)
- 2: RoyalPay Merchant's static QR Code
- 3: QRCode Gateway
- 4: JSAPI Gateway
- 5: Third EftPOS payment code gateway
- 6: Third EftPOS collection code gateway
- 7: RoyalPay Merchant's static QR Code(deprecated)
- 8: H5 Gateway
- 9: WEB Gateway
- 10: SDK order Gateway
- 11: RoyalPay Bill QR Code
- 12: Mini Program Gateway
- 13: Native QR Code Gateway
- 14: RoyalPay Bill link
- 15: Native JSAPI Gateway
- 16: Card Order(Pre order mode)
- 17: Card Order
- 18: DirectDebit
channel:
type: string
description: Trading channel
type:
type: string
description: Transaction type
enum:
- Credit
- Debit
currency:
type: string
example:
AUD
total_amount:
type: integer
description: Total amount for order. minimal unit of the currency.
input_amount:
type: integer
description: Input amount for order. minimal unit of the currency.
customer_payment_amount:
type: integer
description: Customer actual paid amount. minimal unit of the currency.
settle_amount:
type: integer
description: Amount calculated to merchant. note that it did not sub surcharge and GST yet. AUD currency. minimal unit of the currency.
transfer_amount:
type: integer
description: Pay amount to merchant. settle_amount - surcharge - GST. AUD currency. minimal unit of the currency.
surcharge:
type: integer
description: surcharge for this transaction. AUD currency. minimal unit of the currency.
gst:
type: integer
description: GST. AUD currency. minimal unit of the currency.
exchange_rate:
type: number
description: used exchange rate.
remark:
type: string
description: transaction remark
customInfo:
type: object
properties:
report_id:
type: string
description: RoyalPay customs report id
client_report_id:
type: string
description: merchant submitted customs report id
report_status:
type: string
description: report status
enum:
- PROCESSING
- SUBMITED
- FAILED
- SUCCESS
channel:
type: string
description: payment channel
custom:
type: string
description: customs code
mch_custom_no:
type: string
description: merchant's customs no registered in customs system
mch_custom_name:
type: string
description: merchant's name registered in customs system
order_id:
type: string
description: RoyalPay order id
transaction_id:
type: string
description: channel transaction id
order_currency:
type: string
description: order currency
order_amount:
type: number
description: order amount
report_time:
type: string
format: 'date-time'
description: report customs time
creation_date:
format: 'date-time'
type: string
description: report create time
last_update_date:
type: string
format: 'date-time'
description: update time
error_code:
type: string
description: error code
error_msg:
type: string
description: error message
verify_department:
type: string
verify_department_trade_id:
type: string
sub_orders:
type: array
items:
type: object
properties:
sub_order_no:
type: string
description: merchant's sub order no
fee_type:
type: string
description: currency code
default: CNY
enum:
- CNY
order_fee:
type: number
description: sub order fee
transport_fee:
type: number
description: sub order transport fee
verify_department:
type: string
verify_department_trade_id:
type: string
report_status:
type: string
description: report status
enum:
- PROCESSING
- SUBMITED
- FAILED
- SUCCESS
error_code:
type: string
error_msg:
type: string

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 190 KiB

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="394.5px" height="103.5px" viewBox="-30 -10 364.5 83.5" enable-background="new -30 -10 364.5 83.5" xml:space="preserve">
<g>
<path fill="#ED6B2C" d="M28.416,39.902"/>
</g>
<path fill="#ED6B2C" d="M48.971,50.572c0-3.301-2.532-6.009-5.758-6.29l-7.385-15.836c-0.144-0.309-0.044-0.674,0.234-0.871
c2.709-1.91,4.48-5.06,4.48-8.626c0-5.817-4.711-10.535-10.525-10.544h-0.019c-0.033,0-0.066,0.002-0.098,0.002V8.405h-11.83
c-0.388,0-0.703,0.315-0.703,0.703v4.919c0,0.388,0.315,0.703,0.703,0.703H29.9v0h0.018c2.288,0,4.236,1.779,4.318,4.065
c0.085,2.401-1.837,4.375-4.219,4.375H6.825V6.794c0-0.259-0.21-0.469-0.469-0.469H5.185C2.598,6.325,0.5,8.423,0.5,11.01v38.214
c0,0.049,0.002,0.096,0.003,0.144C0.502,49.415,0.5,49.461,0.5,49.508c0,3.718,2.748,6.794,6.325,7.304
c0.344,0.049,0.696,0.075,1.054,0.075c0.358,0,0.71-0.026,1.054-0.075c2.213-0.316,4.107-1.614,5.231-3.437
c0.693-1.111,1.094-2.419,1.094-3.82V37.948H29.9v-0.002c0.003,0,0.006,0,0.009,0c0.4,0.003,0.664-0.418,0.495-0.781l-2.392-5.136
c-0.115-0.248-0.364-0.406-0.637-0.406H9.636c-0.388,0-0.703,0.315-0.703,0.703v0.001l0,17.139c0,0.551-0.404,1.042-0.953,1.093
c-0.629,0.058-1.156-0.433-1.156-1.049V29.496h22.067c0.273,0,0.522,0.158,0.637,0.406l7.951,17.051
c-0.719,1.026-1.141,2.272-1.141,3.619c0,3.301,2.532,6.009,5.76,6.29l0.002,0.005l0.007-0.005c0.18,0.016,0.361,0.026,0.546,0.026
c2.139,0,4.027-1.064,5.17-2.689l0.009-0.005l-0.002-0.005C48.549,53.163,48.971,51.917,48.971,50.572z"/>
<path fill="#ED6B2C" d="M8.933,20.38V4.685C8.933,2.098,11.031,0,13.619,0h16.398c10.621,0.009,19.198,8.747,18.949,19.429
c-0.139,5.878-2.994,11.102-7.332,14.487c-0.282,0.22-0.696,0.122-0.847-0.202l-2.242-4.806c-0.127-0.272-0.069-0.597,0.15-0.803
c2.402-2.257,3.925-5.427,3.972-8.962c0.091-7.063-5.608-12.819-12.65-12.819H15.853c-0.329,0-0.595,0.266-0.595,0.595v13.46
c0,0.388-0.315,0.703-0.703,0.703H9.636C9.247,21.083,8.933,20.767,8.933,20.38z"/>
<g>
<path fill="#ED6B2C" d="M336.166,39.902"/>
</g>
<path fill="#ED6B2C" d="M84.512,25.763c-0.117-0.199-0.237-0.396-0.361-0.59c-0.78-1.075-2.047-1.776-3.476-1.776
c-2.373,0-4.296,1.923-4.296,4.294c0,0.792,0.213,1.534,0.59,2.172c0.021,0.037,0.047,0.077,0.07,0.117
c0.832,1.394,1.312,3.027,1.312,4.77c0,5.144-4.17,9.314-9.312,9.314c-5.144,0-9.314-4.17-9.314-9.314
c0-5.142,4.17-9.312,9.314-9.312c0.295,0,0.586,0.014,0.874,0.042c0.166,0.014,0.33,0.033,0.492,0.059
c0.084,0.005,0.169,0.007,0.255,0.007c2.371,0,4.294-1.923,4.294-4.296c0-2.071-1.466-3.8-3.418-4.205c-0.002,0-0.007,0-0.012-0.002
c-0.23-0.033-0.461-0.059-0.696-0.082c-0.588-0.059-1.185-0.089-1.79-0.089c-9.888,0-17.902,8.016-17.902,17.902
s8.014,17.902,17.902,17.902c9.886,0,17.902-8.016,17.902-17.902C86.942,31.488,86.056,28.41,84.512,25.763z"/>
<path fill="#ED6B2C" d="M115.331,17.272l-9.279,21.534l-9.33-21.536c-0.111-0.257-0.365-0.423-0.645-0.423h-7.493
c-0.337,0-0.564,0.345-0.43,0.655l13.655,30.979h0.073l-2.078,4.822c-0.393,0.912-1.291,1.503-2.284,1.503h-4.501
c-0.388,0-0.703,0.315-0.703,0.703v7.028c0,0.388,0.315,0.703,0.703,0.703h4.947c3.635,0,6.921-2.162,8.36-5.501L123.9,17.502
c0.133-0.309-0.094-0.654-0.43-0.654h-7.493C115.696,16.848,115.442,17.015,115.331,17.272z"/>
<path fill="#ED6B2C" d="M158.638,44.233V17.478c0-0.388-0.315-0.703-0.703-0.703h-15.11c-9.943,0-17.994,8.097-17.92,18.057
c0.073,9.881,8.264,17.785,18.145,17.785h0.844c2.319,0,4.199-1.88,4.199-4.199v0c0-2.319-1.88-4.199-4.199-4.199h-0.902
c-5.252,0-9.688-4.296-9.655-9.548c0.016-2.595,1.074-4.945,2.778-6.649c1.717-1.717,4.088-2.778,6.709-2.778h7.377v21.8
c0,3.105,2.517,5.622,5.622,5.622h4.45c0.259,0,0.469-0.21,0.469-0.469v-7.496c0-0.259-0.21-0.469-0.469-0.469H158.638z"/>
<path fill="#ED6B2C" d="M158.622,44.255"/>
<path fill="#ED6B2C" d="M175.502,44.233V4.87c0-0.388-0.315-0.703-0.703-0.703h-7.028c-0.388,0-0.703,0.315-0.703,0.703v39.363
v2.808c0,3.103,2.515,5.62,5.618,5.622l4.221,0.003c0.388,0,0.703-0.315,0.703-0.703v-7.028c0-0.388-0.315-0.703-0.703-0.703
H175.502z"/>
<path fill="#ED6B2C" d="M183.972,9.094v42.869c0,0.388,0.315,0.703,0.703,0.703h7.028c0.388,0,0.703-0.315,0.703-0.703V17.645
c0-0.388,0.315-0.703,0.703-0.703h13.109c4.011,0,7.262,3.251,7.262,7.262v0c0,4.011-3.251,7.262-7.262,7.262h-5.329
c-2.361,0-4.275,1.914-4.275,4.275v0c0,2.361,1.914,4.275,4.275,4.275h5.212c8.733,0,15.813-7.079,15.813-15.813v0
c0-8.733-7.079-15.813-15.813-15.813h-21.425C184.287,8.391,183.972,8.706,183.972,9.094z"/>
<path fill="#ED6B2C" d="M259.848,44.233V17.478c0-0.388-0.315-0.703-0.703-0.703h-15.11c-9.943,0-17.994,8.097-17.92,18.057
c0.073,9.881,8.264,17.785,18.145,17.785h0.844c2.319,0,4.199-1.88,4.199-4.199v0c0-2.319-1.88-4.199-4.199-4.199h-0.902
c-5.252,0-9.688-4.296-9.655-9.548c0.016-2.595,1.074-4.945,2.778-6.649c1.717-1.717,4.088-2.778,6.709-2.778h7.377v21.8
c0,3.105,2.517,5.622,5.622,5.622h4.45c0.259,0,0.469-0.21,0.469-0.469v-7.496c0-0.259-0.21-0.469-0.469-0.469H259.848z"/>
<path fill="#ED6B2C" d="M295.507,17.236l-9.279,21.534l-9.33-21.536c-0.111-0.257-0.365-0.423-0.645-0.423h-7.493
c-0.337,0-0.564,0.345-0.43,0.655l13.655,30.979h0.073l-2.078,4.822c-0.393,0.912-1.291,1.503-2.284,1.503h-4.501
c-0.388,0-0.703,0.315-0.703,0.703V62.5c0,0.388,0.315,0.703,0.703,0.703h4.947c3.635,0,6.921-2.162,8.36-5.501l17.573-40.237
c0.133-0.309-0.094-0.654-0.43-0.654h-7.493C295.871,16.811,295.618,16.978,295.507,17.236z"/>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>RoyalPay Document</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">
<!--
ReDoc doesn't change outer page styles
-->
<style>
body {
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<redoc spec-url='document.yml' expand-responses="200" hide-download-button></redoc>
<script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"></script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Loading…
Cancel
Save