文档说明
接入前准备
- 商户在开始技术集成前,需要先跟AlphaPay签订相关产品的合同。如需帮助,请联系AlphaPay商务团队.
- 商户获得测试账户的商户编码与商户密钥
- APP或者小程序接入需提供APPID给AlphaPay进行绑定才能成功接入微信支付
- 选择当前交易货币: 加元 美元
适用于支付场景
渠道区分
根据调用接口不同分为线上和线下两个渠道,两个渠道分别使用不同的汇率和手续费费率,为避免混淆在此区分:
- 线上渠道:包含QR CODE、Web、JSAPI、H5、APP SDK、MiniProgram 六种支付方式
- 线下渠道:包含Retail Pay 支付方式
- JSAPI和H5 Mobile:JSAPI只能在微信、支付宝客户端内访问的页面调起支付,H5可以在移动设备任意浏览器或App的WebView调起支付
- Web支付和QR Code: Web支付会跳转到支付宝官方收银台,用户可以选择登陆账号或用客户端扫码完成支付;QR Code方式商户可以自行展示创建的二维码,也可以跳转到AlphaPay展示的收银台页面显示二维码,用户只能用支付宝客户端扫码完成支付。
适用货币
AlphaPay接受人民币和加元两个币种的支付订单- CAD:加元
- CNY:人民币
业务规则
- QRCode支付是在网页上展示二维码,用户使用微信扫一扫扫码后直接进入微信支付页面,适用于商城类web网站;
- JSAPI支付是在微信浏览器内直接跳转到AlphaPay让用户选择支付订单,页面只能在微信客户端打开,适用于微店;
- 创建订单时需要提供订单号,同一个订单不允许重复提交,系统会自动根据订单状态判断是否创建新订单并关闭旧订单。因此商户端应该同一个订单只用一个单号,避免重复付款;
- 由于存在自动创建新订单机制,创建订单后返回的AlphaPay单号不代表最终支付的单号;
- QRCode支付订单创建后会直接返回QRCode和pay_url,商户可以自行选择展示支付二维码或跳转至AlphaPay支付页;
- JSAPI支付订单创建后会返回pay_url,商户应该跳转到这个地址让用户完成支付;
- 跳转pay_url时必须加上签名信息;
- 每次请求都应该使用新生成的签名;
- 订单成功支付后会调用订单中提供的notify_url,详情可以查看API定义;若创建订单时未提供,商户需要在创建订单后轮询订单状态接口,直到订单被支付或过期;
- 订单支付有效期为5分钟,超时可以用相同的订单号重新发起请求,建议在重新打开支付页的时候重新发起请求。订单有效时间可以在后台进行修改;
- 使用跳转支付页前应该先调用后台服务输入金额等参数创建订单后再跳转;
- 创建订单、创建退款接口都允许同订单号重复调用,但是具体参数以初次请求的参数为准;
- 所有和金额相关的数字均以货币最小面值为单位,以CAD为例,100表示CAD 1.00。
API Endpoint
https://pay.alphapay.ca/api/v1.0
请求参数说明
支付单和退款单提交均为PUT方式,订单查询均为GET方式;包含Request Entity的请求参数格式为json
除跳转页面外,所有的Accept均为application/json,所有的PUT/POST请求Content-Type为application/json。
系统使用UTF-8字符集。
参数分为三种:Path Variable/Query Param/JSON entity
所有返回JSON的API,成功访问返回状态值均为200(不论执行结果)。
JSON固定包含字段return_code
系统错误提示支持中文、英文两种语言,默认根据Request Header中的Accept-Language值自动选择,如需调整亦可以添加locale cookie进行指定。
除跳转页面外,所有的Accept均为application/json,所有的PUT/POST请求Content-Type为application/json。
系统使用UTF-8字符集。
参数分为三种:Path Variable/Query Param/JSON entity
- Path Variable: 包含在URI内的参数
- Query Param: 在URI末尾?后的key=value形式的参数
- JSON entity: 只在PUT/POST请求中使用
所有返回JSON的API,成功访问返回状态值均为200(不论执行结果)。
JSON固定包含字段return_code
- 若值为SUCCESS则表示执行成功。
- 其他值表示执行失败,此时可查询错误码了解对应的错误类型,此时还会携带return_msg字段作为错误描述信息。
安全传输层协议
仅支持TLS 1.2。多语言支持
系统错误提示支持中文、英文两种语言,默认根据Request Header中的Accept-Language值自动选择,如需调整亦可以添加locale cookie进行指定。
签名算法
每次请求都必须加入签名信息作为请求校验。校验参数全部以Query Param参数的方式附加在URL后面,顺序不分先后。
签名过程:
签名过程:
- 连接生成签名的原始字符串,需要4个参数,使用 & 连接,无需转码
valid_string = partner_code&time&nonce_str&credential_code - partner_code: 商户编码,由4位或6位大写字母或数字构成
- time: UTC毫秒时间戳,取当前UTC时间的毫秒数时间戳,Long类型,5分钟内有效
- nonce_str: 随机字符串(支持数字和字母),无长度限制,请使用URL安全字符(避开&,=等符号),请注意HTTP URL的最大长度限制,建议长度在10到30位
- credential_code: 系统为商户分配的开发校验码,请妥善保管,不要在公开场合泄露
- 使用SHA256进行签名,并转为Hex小写字符串
- 在请求中把签名使用的time, nonce_str和生成的sign一同作为Query Param参数发送
sign=hex(sha256(valid_string)).toLowerCase() |
time=1468691301081 |
nonce_str=123 |
sign=64712672795f94fa3bfb2e88ac09cb75d09bcf8a3c3dcaa529d8290dd6587060 |
支付成功回调
若订单创建时提供了notify_url,系统会在用户支付成功后向这个地址主动发送支付成功状态推送。推送校验参数会包含在json内,商户系统应该验证校验参数,确定来源正确后再进行后续操作。推送动作最多会重试3次,商户系统应当能够处理收到的重复请求。
返回JSON
字段 | 类型 | 描述 |
time | Long | UTC时间戳 |
nonce_str | String | 随机字符串 |
sign | String | 签名, 使用time和nonce_str获得sign, 且验证是否与此sign一致 |
partner_order_id | String | 商户订单ID |
order_id | String | AlphaPay 订单ID |
total_fee | String | 订单金额,单位是最小货币单位 |
real_fee | String | 支付金额,单位是最小货币单位 |
rate | Double | 交易时使用的汇率,1CAD=?CNY |
currency | String | 币种 |
channel | String | 支付渠道 Alipay、Wechat、UnionPay |
create_time | String | 订单创建时间(最新订单为准)(yyyy-MM-dd HH:mm:ss,加拿大西部时间) |
pay_time | String | 订单支付时间(最新订单为准)(yyyy-MM-dd HH:mm:ss,加拿大西部时间) |
双重保障检验订单支付成功
- 被动:当客人支付成功,支付服务器会推送支付成功数据给商户服务器
- 主动查询:在跳转界面通过 查询订单状态接口 来获得订单状态
- 订单需查询数次以防数据未更新
QR Code - 创建QR Code支付单
QR Code支付单适用于PC端网页/手机浏览器进行支付。电脑会自动生成一个带有消费金额的二维码,消费者使用微信客户端, 支付宝客户端或银联云闪付客户端扫描二维码后输入支付密码即可支付成功。
PUT |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/orders/{order_id} |
接入流程
返回值包括二维码字符串,二维码图片,支付地址,商户可以自行决定直接展示二维码或跳转支付页,跳转支付页需要带上签名信息(详见签名算法) 货币类型如果是CNY,注意通过汇率转换后不得低于0.01CAD,否则订单可以创建成功,但支付时会报金额不合法错误。
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
JSON
字段 | 类型 | 描述 |
description | String | 必填,订单标题(最大长度128字符,超出自动截取) |
price | int | 必填,金额,单位为货币最小单位,例如使用100表示CAD1.00 |
currency | String |
币种代码 默认值: CAD 允许值: CAD , CNY |
channel | String |
支付渠道,大小写敏感 允许值: Alipay , Wechat , UnionPay |
notify_url | String | 支付通知url,详见支付成功回调 |
operator | String | 操作人员标识,用于商户系统识别操作人员 |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
partner_order_id | String | 商户订单ID |
full_name | String | 商户注册全名 |
code_url | String | 支付码字符串,商户可以据此自行生产二维码 |
partner_name | String | 商户名称 |
channel | String | 支付渠道 |
result_code | String | SUCCESS表示创建订单成功,EXISTS表示订单已存在 |
partner_code | String | 商户编码 |
order_id | String | AlphaPay订单ID,同时也是微信、支付宝、银联云闪付订单ID,最终支付成功的订单ID可能不同 |
return_code | String | 执行结果 |
pay_url | String | 跳转URL,需加上必要参数才能点击进行支付 |
qrcode_img | String | Base64封装的二维码图片,可直接作为img的src属性 |
错误码
名称 | 描述 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_PAID | 订单已支付 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
两种方式显示二维码进行支付
- 在商户页面生成二维码支付,使用
- qrcode_img: Base64封装的二维码图片,可直接作为img的src属性
- code_url: 支付码字符串,商户可以据此自行生产二维码
- 跳转至AlphaPay支付界面,需加上参数才能点击进行支付,详见QR Code支付跳转页
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/orders/ZZZ620200303133408?time=1583271769776&nonce_str=123&sign=2456084a967ca84b0e3d9a4e26d99ddc2ef040ac3b611e9a3349ed2d24da1ac7
请求数据示例
{
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"channel": "Wechat",
"notify_url": "www.alphapay.com/success.php",
"operator": "dev01"
}
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"channel": "Wechat",
"notify_url": "www.alphapay.com/success.php",
"operator": "dev01"
}
返回数据示例
{
"partner_order_id": "ZZZ620200303133408",
"full_name": "Hello Alpha Pay",
"code_url": "https://pay.alphapay.ca/api/v1.0/payment/partners/ZZZ6/orders/0240520200303134355902940/retail_pay",
"partner_name": "Hello Alpha Pay",
"channel": "Wechat",
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "0240520200303134355902940",
"return_code": "SUCCESS",
"pay_url": "https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/orders/ZZZ620200303133408/pay",
"qrcode_img": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsAQAAAABRBrPYAAACKElEQVR42u2aS27tIBBE2yMvwzu1zU5ZQoaM4HVVQZT4OtKb0sKyLGzOHaQp+kes/c/1ZQtb2MIWtrAIWDVc595uO6rfe0stn3vG1z0WhnG+iuFuPnvQDPnqU5GwbLt/zKcdifxW3BT+CitFxKAB2gQaaC0uVo6E1T9uNwXFEBGTpPFdz42/fd8LU2PdceXH/Yd/mxjT5RbYCrS9QeQd+IxZU2MegO6d/opey7SXX5Z+fowBN2nQx77BMU4tFNYYfU4svQYOQOHnQ+QBMEYfOmrI+2p9O1/MMUJhpf/tXGvfztjRzDRc/KGw2hWuHU0P5ljxVBmvkbCGzQs7MPqAacMUv+w2PyaDyE3Voe1UFIhDYap3vAqgHbLS45upssXCqg23DM/ck+TE+1Gwz451OyASjYA7xFD3aJjkzUKgZ4/QfDmCYVVVAJ8S9s1XhadomDLkvu7IkwVvLRjGLTyaaefIqU57LP30WGMzrYchNmHYQkSKZbEwNWE2TqWeMSqzOmowDEEWX5QuVqVV9M+pBcNU2SHBSGqTDhN9JBiTYyP6aKEZedleK89O4/yYvLGqOZqiHPd3URAI6401Y09Y3f43kQfA1Cz1qY0i5xMe+6Mymh/70QCn4+IPh+ZjYdy/nOURlZqKZvYSs0JgI/+HBkwHOm8GmR5T6ztRACxm4bvezrOmxngAR0d9FRWwvQ9jwbBxUKUe6Uga1SsOha1/cVnYwha2sPjYP8qU4+heQswIAAAAAElFTkSuQmCC"
}
"partner_order_id": "ZZZ620200303133408",
"full_name": "Hello Alpha Pay",
"code_url": "https://pay.alphapay.ca/api/v1.0/payment/partners/ZZZ6/orders/0240520200303134355902940/retail_pay",
"partner_name": "Hello Alpha Pay",
"channel": "Wechat",
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "0240520200303134355902940",
"return_code": "SUCCESS",
"pay_url": "https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/orders/ZZZ620200303133408/pay",
"qrcode_img": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsAQAAAABRBrPYAAACKElEQVR42u2aS27tIBBE2yMvwzu1zU5ZQoaM4HVVQZT4OtKb0sKyLGzOHaQp+kes/c/1ZQtb2MIWtrAIWDVc595uO6rfe0stn3vG1z0WhnG+iuFuPnvQDPnqU5GwbLt/zKcdifxW3BT+CitFxKAB2gQaaC0uVo6E1T9uNwXFEBGTpPFdz42/fd8LU2PdceXH/Yd/mxjT5RbYCrS9QeQd+IxZU2MegO6d/opey7SXX5Z+fowBN2nQx77BMU4tFNYYfU4svQYOQOHnQ+QBMEYfOmrI+2p9O1/MMUJhpf/tXGvfztjRzDRc/KGw2hWuHU0P5ljxVBmvkbCGzQs7MPqAacMUv+w2PyaDyE3Voe1UFIhDYap3vAqgHbLS45upssXCqg23DM/ck+TE+1Gwz451OyASjYA7xFD3aJjkzUKgZ4/QfDmCYVVVAJ8S9s1XhadomDLkvu7IkwVvLRjGLTyaaefIqU57LP30WGMzrYchNmHYQkSKZbEwNWE2TqWeMSqzOmowDEEWX5QuVqVV9M+pBcNU2SHBSGqTDhN9JBiTYyP6aKEZedleK89O4/yYvLGqOZqiHPd3URAI6401Y09Y3f43kQfA1Cz1qY0i5xMe+6Mymh/70QCn4+IPh+ZjYdy/nOURlZqKZvYSs0JgI/+HBkwHOm8GmR5T6ztRACxm4bvezrOmxngAR0d9FRWwvQ9jwbBxUKUe6Uga1SsOha1/cVnYwha2sPjYP8qU4+heQswIAAAAAElFTkSuQmCC"
}
QR Code - 创建QR Code支付跳转页
必须先调用创建QR Code订单接口再进行跳转。建议在用户回调到对应页时通过后台查询订单状态接口确认订单的支付状态。
GET |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/orders/{order_id}/pay |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求已预先创建 |
Query Params
字段 | 类型 | 描述 |
redirect | String | 必填,支付成功后跳转页面,详见支付成功回调 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名 (需生成一个新的sign) |
错误码
名称 | 描述 |
ORDER_NOT_EXIST | 订单不存在 |
ORDER_MISMATCH | 订单号与商户不匹配 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/orders/ZZZ620200303140443/pay?redirect=http%3A%2F%2Flocalhost%2FAlphaPay_PHP%2Fexample%2Fsuccess.php%3Forder_id%3DZZZ620200303140443&time=1583273083823&nonce_str=b4toxf372pt8rqaguwkbyg8wcixy4s&sign=cb4d424cac22f15232836c730cf422222d8e8e974bb9c7b77acea3243f2056a3
Alipay/UnionPay Online Payment - 创建银联/支付宝Web订单
用于PC端支付宝支付,创建订单后跳转到返回的pay_url(需附加签名参数和redirect参数),随后进入银联/支付宝支付页面完成支付,该接口仅现仅支持银联和支付宝。
PUT |
https://pay.alphapay.ca/api/v1.0/web_gateway/partners/{partner_code}/orders/{order_id} |
接入流程
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
JSON
字段 | 类型 | 描述 |
description | String | 必填,订单标题(最大长度128字符,超出自动截取) |
price | int | 必填,金额,单位为货币最小单位,例如使用100表示CAD1.00 |
currency | String |
币种代码 默认值: CAD 允许值: CAD , CNY |
channel | String |
支付渠道,大小写敏感 允许值: Alipay, UnionPay |
notify_url | String | 支付通知url,详见支付成功回调 |
operator | String | 操作人员标识,用于商户系统识别操作人员 |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名 (需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
partner_order_id | String | 商户订单ID |
full_name | String | 商户注册全名 |
partner_name | String | 商户名称 |
channel | String | 支付渠道 |
result_code | String | SUCCESS表示创建订单成功,EXISTS表示订单已存在 |
partner_code | String | 商户编码 |
order_id | String | AlphaPay订单ID,同时也是微信、支付宝订单ID,最终支付成功的订单ID可能不同 |
return_code | String | 执行结果 |
pay_url | String | 跳转URL,需加上必要参数才能点击进行支付 |
错误码
名称 | 描述 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_PAID | 订单已支付 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/web_gateway/partners/ZZZ6/orders/ZZZ620200303133409?time=1583273723299&nonce_str=123&sign=c3884addcc5a1615e8c9c1181f74b5793aef8de19385726918a54c2c3b0b051c
请求数据示例
{
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"channel": "Alipay",
"notify_url": "www.alphapay.com/success.php",
"operator": "dev01"
}
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"channel": "Alipay",
"notify_url": "www.alphapay.com/success.php",
"operator": "dev01"
}
返回数据示例
{
"partner_order_id": "ZZZ620200303133409",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "AlipayOnline",
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "0240520200303141625039278",
"return_code": "SUCCESS",
"pay_url": "https://pay.alphapay.ca/api/v1.0/alipay/partners/ZZZ6/orders/ZZZ620200303133409/web_pay"
}
"partner_order_id": "ZZZ620200303133409",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "AlipayOnline",
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "0240520200303141625039278",
"return_code": "SUCCESS",
"pay_url": "https://pay.alphapay.ca/api/v1.0/alipay/partners/ZZZ6/orders/ZZZ620200303133409/web_pay"
}
跳转至支付宝进行支付
https://pay.alphapay.ca/api/v1.0/alipay/partners/ZZZ6/orders/ZZZ620200303133409/web_pay?time=1535761172065&nonce_str=apcp0dumiamxhxlolv22bke2587dp8&sign=124d2ba7eca94c8adedad84aa3dd892f3558d1aa310bf702945700ecbfe54dfb
跳转至银联进行支付
https://pay.alphapay.ca/api/v1.0/web_gateway/partners/ZZZ6/orders/ZZZ620200424133655/pay?time=1587778141636&nonce_str=123&sign=85518b7c1288e967b80a7b81f53ad4ed7691ec86a47ae8f5a7a4b5f4eeea1010
JSAPI - 创建JSAPI订单
JSAPI适用于在微信APP或者支付宝APP内打开的网页进行支付,如果用户从公众号进入支付页要求公众号已完成认证。用户下单后跳转至AlphaPay订单页,并拉起微信或者支付宝内置收银台完成支付。
返回值包括支付地址,商户应该引导用户跳转支付页,跳转支付页需要带上签名信息; 货币类型如果是CNY,注意通过汇率转换后不得低于0.01CAD,否则订单可以创建成功,但支付时会报金额不合法错误。
pay_url需加上参数才能点击进行支付,详见微信JSAPI支付跳转页 或者 支付宝JSAPI支付跳转页。
PUT |
https://pay.alphapay.ca/api/v1.0/jsapi_gateway/partners/{partner_code}/orders/{order_id} |
接入流程
返回值包括支付地址,商户应该引导用户跳转支付页,跳转支付页需要带上签名信息; 货币类型如果是CNY,注意通过汇率转换后不得低于0.01CAD,否则订单可以创建成功,但支付时会报金额不合法错误。
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
JSON
字段 | 类型 | 描述 |
description | String | 必填,订单标题(最大长度128字符,超出自动截取) |
price | int | 必填,金额,单位为货币最小单位,例如使用100表示CAD1.00 |
currency | String |
币种代码 默认值: CAD 允许值: CAD , CNY |
channel | String |
支付渠道,大小写敏感 允许值: Alipay , Wechat |
notify_url | String | 支付通知url,详见支付成功回调,不填则不会推送支付通知 |
operator | String | 操作人员标识,用于商户系统识别操作人员 |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名 (需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
partner_order_id | String | 商户订单ID |
full_name | String | 商户注册全名 |
partner_name | String | 商户名称 |
channel | String | 支付渠道 |
result_code | String | SUCCESS表示创建订单成功,EXISTS表示订单已存在 |
partner_code | String | 商户编码 |
order_id | String | AlphaPay订单ID,同时也是微信、支付宝订单ID,最终支付成功的订单ID可能不同 |
return_code | String | 执行结果 |
pay_url | String | 跳转URL,需加上必要参数才能点击进行支付 |
错误码
名称 | 描述 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_PAID | 订单已支付 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
进行支付
pay_url需加上参数才能点击进行支付,详见微信JSAPI支付跳转页 或者 支付宝JSAPI支付跳转页。
发送请求示例
https://pay.alphapay.ca/api/v1.0/jsapi_gateway/partners/ZZZ6/orders/ZZZ620200303133410?time=1583274791491&nonce_str=123&sign=b3aad28aafc0ba0e4723457df54fc6b9b6ee7a4800a4eaaa7a49fa9a043b5b15
请求数据示例
{
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"channel": "Wechat",
"notify_url": "www.alphapay.com/success.php",
"operator": "dev01"
}
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"channel": "Wechat",
"notify_url": "www.alphapay.com/success.php",
"operator": "dev01"
}
返回数据示例
{
"partner_order_id": "ZZZ620200303133410",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "Wechat",
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20200303143358581-SRA6NDCRH",
"return_code": "SUCCESS",
"pay_url": "https://pay.alphapay.ca/api/v1.0/wechat_jsapi_gateway/partners/ZZZ6_order_ZZZ620200303133410"
}
"partner_order_id": "ZZZ620200303133410",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "Wechat",
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20200303143358581-SRA6NDCRH",
"return_code": "SUCCESS",
"pay_url": "https://pay.alphapay.ca/api/v1.0/wechat_jsapi_gateway/partners/ZZZ6_order_ZZZ620200303133410"
}
JSAPI - 微信JSAPI支付跳转页
必须先调用创建JSAPI订单接口再进行跳转,最终URL以下单api返回的pay_url为准。建议在用户回调到对应页时通过后台查询订单状态接口确认订单的支付状态。
GET |
https://pay.alphapay.ca/api/v1.0/wechat_jsapi_gateway/partners/{partner_code}_order_{order_id} |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求已预先创建 |
Query Params
字段 | 类型 | 描述 |
redirect | String | 必填,跳转页面 (无论用户是否支付成功,都会跳转到此页面,需要在跳转页面查询订单状态) |
directpay | Boolean |
是否直接支付 默认值: false 允许值: true , false |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填, 签名(需生成一个新的sign) |
错误码
名称 | 描述 |
ORDER_NOT_EXIST | 订单不存在 |
ORDER_MISMATCH | 订单号与商户不匹配 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/wechat_jsapi_gateway/partners/ZZZ6_order_ZZZ620200303133410?redirect=https://www.alphapay.com/success&directpay=true&time=1535759759798&nonce_str=d4e11lnh9u13gyapjkfieq9l46ak4r&sign=d976fd4bfed4d28e96b6c8600507229f666943adc5122937a0f762d3e38b3a7f
JSAPI - 支付宝JSAPI支付跳转页
必须先调用创建JSAPI订单接口再进行跳转,最终URL以下单api返回的pay_url为准。建议在用户回调到对应页时通过后台 查询订单状态接口 确认订单的支付状态。
GET | https://pay.alphapay.ca/api/v1.0/gateway/alipay/partners/{partner_code}/orders/{order_id}/app_pay |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求已预先创建 |
Query Params
字段 | 类型 | 描述 |
redirect | String | 必填,跳转页面 (无论用户是否支付成功,都会跳转到此页面,需要在跳转页面查询订单状态 ) |
directpay | Boolean |
是否直接支付 默认值: false 允许值: true , false |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名 (需生成一个新的sign) |
错误码
名称 | 描述 |
ORDER_NOT_EXIST | 订单不存在 |
ORDER_MISMATCH | 订单号与商户不匹配 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/alipay/partners/ZZZ6/orders/ZZZ620200303133410/app_pay?redirect=https://www.alphapay.com/success&directpay=true&time=1535759759798&nonce_str=d4e11lnh9u13gyapjkfieq9l46ak4r&sign=d976fd4bfed4d28e96b6c8600507229f666943adc5122937a0f762d3e38b3a7f
JSAPI - 创建Native JSAPI订单
使用Native JSAPI需要完成主体认证,并需要通过AlphaPay完成appid绑定。使用Native JSAPI能够直接返回拉起JSAPI的参数。通过AlphaPay平台创建订单,即可直接通过官方的JS SDK拉起支付。微信接入文档 支付宝接入文档
货币类型如果是CNY,注意通过汇率转换后不得低于0.01CAD,否则订单可以创建成功,但支付时会报金额不合法错误。
PUT |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/native_jsapi/{order_id} |
接入流程
货币类型如果是CNY,注意通过汇率转换后不得低于0.01CAD,否则订单可以创建成功,但支付时会报金额不合法错误。
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
JSON
字段 | 类型 | 描述 |
description | String | 必填,订单标题(最大长度128字符,超出自动截取) |
price | int | 必填,金额,单位为货币最小单位,例如使用100表示CAD1.00 |
currency | String |
币种代码 默认值: CAD 允许值: CAD , CNY |
operator | String | 操作人员标识,用于商户系统识别操作人员 |
channel | String |
支付渠道,大小写敏感 允许值: Alipay , Wechat |
appid | String | 公众号appid(支付宝无需填入) |
customer_id | String | 必填,公众号OpenId/支付宝用户UserId |
notify_url | String | 支付通知url,详见支付成功回调,不填则不会推送支付通知 |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名 (需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
partner_order_id | String | 商户订单ID |
full_name | String | 商户注册全名 |
partner_name | String | 商户名称 |
channel | String | 支付渠道 |
sdk_params | String | Native JSAPI支付所需参数(Json字符串) |
result_code | String | SUCCESS表示创建订单成功,EXISTS表示订单已存在 |
partner_code | String | 商户编码 |
order_id | String | AlphaPay订单ID,同时也是微信、支付宝订单ID,最终支付成功的订单ID可能不同 |
return_code | String | 执行结果 |
pay_url | String | 跳转URL,需加上必要参数才能点击进行支付 |
错误码
名称 | 描述 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_PAID | 订单已支付 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/native_jsapi/ZZZ620200303133415?time=1583281314142&nonce_str=123&sign=3ab9c318b4d97811d95e542c2cb694c02e738ea3b9ff62a380857c8b43e62cec
请求数据示例
{
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"operator": "dev01",
"channel": "Alipay",
"customer_id": "2080000000000001",
"notify_url": "www.alphapay.com/success.php"
}
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"operator": "dev01",
"channel": "Alipay",
"customer_id": "2080000000000001",
"notify_url": "www.alphapay.com/success.php"
}
返回数据示例
{
"partner_order_id": "ZZZ620200303133415",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "AlipayOnline",
"sdk_params":
{
"orderStr": "service=create_forex_trade_wap&partner=2088031415022202&product_code=NEW_WAP_OVERSEAS_SELLER&_input_charset=utf-8&sign_type=MD5¬ify_url=https://pay.alphapay.ca/api/v1.0/alipay/online_orders/ZZZ6-20200528081548975-ZJRAQNONZ/notify&return_url=https://pay.alphapay.ca/api/v1.0/alipay/partners/ZZZ6/orders/ZZZ6-20200528081548975-ZJRAQNONZ/result&subject=DEVELOPER TEST&body=DEVELOPER TEST&out_trade_no=ZZZ6-20200528081548975-ZJRAQNONZ¤cy=CAD&total_fee=0.01&order_create=1590682548975&timeout_rule=10m&secondary_merchant_id=ZZZ6&secondary_merchant_name=Hello Alpha Pay&secondary_merchant_industry=5065&app_pay=Y&sign=b5986ce5a9aa8353e0875b1257ce69d4"
},
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20200303162209092-MO10OORNM",
"return_code": "SUCCESS",
"pay_url": "https://pay.alphapay.ca/api/v1.0/gateway/alipay/partners/ZZZ6/orders/ZZZ620200303133415/app_pay"
}
"partner_order_id": "ZZZ620200303133415",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "AlipayOnline",
"sdk_params":
{
"orderStr": "service=create_forex_trade_wap&partner=2088031415022202&product_code=NEW_WAP_OVERSEAS_SELLER&_input_charset=utf-8&sign_type=MD5¬ify_url=https://pay.alphapay.ca/api/v1.0/alipay/online_orders/ZZZ6-20200528081548975-ZJRAQNONZ/notify&return_url=https://pay.alphapay.ca/api/v1.0/alipay/partners/ZZZ6/orders/ZZZ6-20200528081548975-ZJRAQNONZ/result&subject=DEVELOPER TEST&body=DEVELOPER TEST&out_trade_no=ZZZ6-20200528081548975-ZJRAQNONZ¤cy=CAD&total_fee=0.01&order_create=1590682548975&timeout_rule=10m&secondary_merchant_id=ZZZ6&secondary_merchant_name=Hello Alpha Pay&secondary_merchant_industry=5065&app_pay=Y&sign=b5986ce5a9aa8353e0875b1257ce69d4"
},
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20200303162209092-MO10OORNM",
"return_code": "SUCCESS",
"pay_url": "https://pay.alphapay.ca/api/v1.0/gateway/alipay/partners/ZZZ6/orders/ZZZ620200303133415/app_pay"
}
支付宝交易号唤起支付
<script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script>
<button id="btn-pay" class="btn btn-default">Pay</button>
<script>
var btn = document.querySelector('#btn-pay');
btn.addEventListener('click', function(){
ap.tradePay({
orderStr: 'service=create_forex_trade_wap&partner=2088031415022202&product_code=NEW_WAP_OVERSEAS_SELLER&_input_charset=utf-8&sign_type=MD5¬ify_url=https://pay.alphapay.ca/api/v1.0/alipay/online_orders/ZZZ6-20200528081548975-ZJRAQNONZ/notify&return_url=https://pay.alphapay.ca/api/v1.0/alipay/partners/ZZZ6/orders/ZZZ6-20200528081548975-ZJRAQNONZ/result&subject=DEVELOPER TEST&body=DEVELOPER TEST&out_trade_no=ZZZ6-20200528081548975-ZJRAQNONZ¤cy=CAD&total_fee=0.01&order_create=1590682548975&timeout_rule=10m&secondary_merchant_id=ZZZ6&secondary_merchant_name=Hello Alpha Pay&secondary_merchant_industry=5065&app_pay=Y&sign=b5986ce5a9aa8353e0875b1257ce69d4'
}, function(res){
ap.alert(res.resultCode);
});
});
</script>
Mobile H5 - 创建H5支付单
注意:微信支付暂时不支持H5支付
H5支付适用场景为移动端App或者手机自带浏览器进行支付,用户下单后浏览器跳转至银联/支付宝支付页面并自动拉起银联/支付宝客户端完成支付。
返回值包括跳转支付地址,跳转支付页需要带上签名信息。 货币类型如果是CNY,注意通过汇率转换后不得低于0.01CAD,否则订单可以创建成功,但支付时会报金额不合法错误。
H5支付适用场景为移动端App或者手机自带浏览器进行支付,用户下单后浏览器跳转至银联/支付宝支付页面并自动拉起银联/支付宝客户端完成支付。
PUT |
https://pay.alphapay.ca/api/v1.0/h5_payment/partners/{partner_code}/orders/{order_id} |
接入流程
返回值包括跳转支付地址,跳转支付页需要带上签名信息。 货币类型如果是CNY,注意通过汇率转换后不得低于0.01CAD,否则订单可以创建成功,但支付时会报金额不合法错误。
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
JSON
字段 | 类型 | 描述 |
description | String | 必填,订单标题(最大长度128字符,超出自动截取) |
price | int | 必填,金额,单位为货币最小单位,例如使用100表示CAD1.00 |
currency | String |
币种代码 默认值: CAD 允许值: CAD , CNY |
channel | String |
支付渠道,大小写敏感 允许值: Alipay , UnionPay |
notify_url | String | 支付通知url,详见支付成功回调,不填则不会推送支付通知 |
operator | String | 操作人员标识,用于商户系统识别操作人员 |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
partner_order_id | String | 商户订单ID |
full_name | String | 商户注册全名 |
partner_name | String | 商户名称 |
channel | String | 支付渠道 |
result_code | String | SUCCESS表示创建订单成功,EXISTS表示订单已存在 |
partner_code | String | 商户编码 |
order_id | String | AlphaPay订单ID,同时也是微信、支付宝订单ID,最终支付成功的订单ID可能不同 |
return_code | String | 执行结果 |
pay_url | String | 跳转URL,需加上必要参数才能点击进行支付 |
错误码
名称 | 描述 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_PAID | 订单已支付 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
SECONDARY_MERCHANT_ID_INVALID | 请联系AlphaPay |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
进行支付
pay_url需加上参数才能点击进行支付,详见 支付宝H5支付跳转页。发送请求示例
https://pay.alphapay.ca/api/v1.0/h5_payment/partners/ZZZ6/orders/ZZZ620200303170626?time=1583284025740&nonce_str=123&sign=b40baec1a61284c5cb5c2e680109931d4589d9a9e26b56ad4ab325a4cc3e9417
请求数据示例
{
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"channel": "Alipay",
"notify_url": "www.alphapay.com/success.php",
"operator": "dev01"
}
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"channel": "Alipay",
"notify_url": "www.alphapay.com/success.php",
"operator": "dev01"
}
返回数据示例
{
"partner_order_id": "ZZZ620200303170626",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "Wechat",
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20200303170716961-3VEYBVEFN",
"return_code": "SUCCESS",
"pay_url": "https://pay.alphapay.ca/api/v1.0/h5_payment/partners/ZZZ6/orders/ZZZ620200303170626/pay"
}
"partner_order_id": "ZZZ620200303170626",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "Wechat",
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20200303170716961-3VEYBVEFN",
"return_code": "SUCCESS",
"pay_url": "https://pay.alphapay.ca/api/v1.0/h5_payment/partners/ZZZ6/orders/ZZZ620200303170626/pay"
}
Mobile H5 - H5支付跳转页
必须先调用创建H5支付订单再进行跳转,最终URL以下单api返回的pay_url为准。建议在用户回调到对应页时通过后台 查询订单状态接口 确认订单的支付状态。
GET |
https://pay.alphapay.ca/api/v1.0/h5_payment/partners/{partner_code}/orders/{order_id}/pay |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求已预先创建 |
Query Params
字段 | 类型 | 描述 |
redirect | String | 必填,跳转页面 (无论用户是否支付成功,都会跳转到此页面,需要在跳转页面查询订单状态) |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
错误码
名称 | 描述 |
ORDER_NOT_EXIST | 订单不存在 |
ORDER_MISMATCH | 订单号与商户不匹配 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/h5_payment/partners/ZZZ6/orders/ZZZ620200303170626/pay?redirect=https://www.alphapay.com/success&time=1535759759798&nonce_str=d4e11lnh9u13gyapjkfieq9l46ak4r&sign=d976fd4bfed4d28e96b6c8600507229f666943adc5122937a0f762d3e38b3a7f
SDK Payment - 创建SDK订单
用于移动端APP调用微信/支付宝/银联SDK支付,调用API创建订单,得到微信/支付宝/银联SDK调用参数,将参数传递给SDK拉起微信/支付宝/银联支付,并由微信/支付宝/银联客户端直接返回支付结果。 强烈建议获得支付结果后再调用AlphaPay订单查询API确认完成支付后再进行后续流程,避免因超时自动撤单导致资金损失。
关于客户端和微信支付整合的更多信息:微信支付SDK文档,微信官方实例代码。
点击下载银联sdk,demo和使用指南:Android, IOS, 把获得的sdk_params作为tn(交易码)传入UPPayAssistEx.startPay (activity, null, null, tn, serverMode)拉起支付。
PUT |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/app_orders/{order_id} |
接入流程
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
JSON
字段 | 类型 | 描述 |
description | String | 必填,订单标题(最大长度128字符,超出自动截取) |
price | int | 必填,金额,单位为货币最小单位,例如使用100表示CAD1.00 |
currency | String |
币种代码 默认值: CAD 允许值: CAD , CNY |
channel | String |
支付渠道,大小写敏感 允许值: Alipay , Wechat , UnionPay |
notify_url | String | 支付通知url,详见支付成功回调,不填则不会推送支付通知 |
operator | String | 操作人员标识,用于商户系统识别操作人员 |
system | String |
客户端操作系统类型 允许值: android , iphone , ipad |
version | String | 客户端版本号 |
appid | String | 微信 appid,微信通道要求必填 |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
partner_order_id | String | 商户订单ID |
full_name | String | 商户注册全名 |
partner_name | String | 商户名称 |
channel | String | 支付渠道 |
sdk_params | String | 调用SDK的参数字符串 |
result_code | String | SUCCESS表示创建订单成功,EXISTS表示订单已存在 |
partner_code | String | 商户编码 |
order_id | String | AlphaPay订单ID,同时也是微信、支付宝订单ID,最终支付成功的订单ID可能不同 |
return_code | String | 执行结果 |
错误码
名称 | 描述 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_PAID | 订单已支付 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
进行支付
获得sdk_params之后,将参数传递给SDK拉起微信/支付宝支付,并由微信/支付宝客户端直接返回支付结果。 关于客户端和支付宝整合的更多信息:支付宝SDK文档,支付宝官方实例代码。关于客户端和微信支付整合的更多信息:微信支付SDK文档,微信官方实例代码。
点击下载银联sdk,demo和使用指南:Android, IOS, 把获得的sdk_params作为tn(交易码)传入UPPayAssistEx.startPay (activity, null, null, tn, serverMode)拉起支付。
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/app_orders/ZZZ620200304093950?time=1583344193469&nonce_str=123&sign=f36dd43876f0af89561f97d0faa2bffc813e580050345ace9a52c6de8fa2976a
请求数据示例
{
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"channel": "Alipay",
"notify_url": "www.alphapay.com/success.php",
"operator": "dev01",
"system": "android",
"version": "1.0",
"appid": "wx0000000000000001"
}
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"channel": "Alipay",
"notify_url": "www.alphapay.com/success.php",
"operator": "dev01",
"system": "android",
"version": "1.0",
"appid": "wx0000000000000001"
}
支付宝返回数据示例
{
"partner_order_id": "ZZZ620200304093950",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "AlipayOnline",
"sdk_params":
{
"service": "mobile.securitypay.pay",
"partner": "0000000000000001",
"_input_charset": "utf-8",
"product_code": "NEW_WAP_OVERSEAS_SELLER",
"notify_url": "https://pay.alphapay.ca/api/v1.0/alipay/online_orders/0468220191017154622994962/notify",
"system": "android",
"version": "1.0",
"out_trade_no": "0468220191017154622994962",
"subject": "AlipaySDKTest20191017164721",
"payment_type": "1",
"seller_id": "0000000000000001",
"currency": "CAD",
"total_fee": 0.01,
"body": "AlipaySDKTest",
"forex_biz": "FP",
"it_b_pay": "2019-10-19 07:51:22",
"secondary_merchant_id": "ZZZ6",
"secondary_merchant_name": "AlphaPayTest",
"secondary_merchant_industry": "0001",
"sign": "JoErm4POMsuSLWZd5Dw%2FZmtfGzIlZX8E0w%2BPtgDJRZP3WVF5O2L5asGOkvYwb76zYhIvJgazbS0XxLGNFm%2Frrm7TPWhXrFYRSeKrFTsC%2B30Yqj0DSKVAkqwwUGZrHu9vS7QCoEQjLIqFrTzjy60eISKoFDxAVyO4bDS9czFyJlE%3D",
"sign_type": "RSA"
},
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20200303162209092-MO10OORNM",
"return_code": "SUCCESS"
}
"partner_order_id": "ZZZ620200304093950",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "AlipayOnline",
"sdk_params":
{
"service": "mobile.securitypay.pay",
"partner": "0000000000000001",
"_input_charset": "utf-8",
"product_code": "NEW_WAP_OVERSEAS_SELLER",
"notify_url": "https://pay.alphapay.ca/api/v1.0/alipay/online_orders/0468220191017154622994962/notify",
"system": "android",
"version": "1.0",
"out_trade_no": "0468220191017154622994962",
"subject": "AlipaySDKTest20191017164721",
"payment_type": "1",
"seller_id": "0000000000000001",
"currency": "CAD",
"total_fee": 0.01,
"body": "AlipaySDKTest",
"forex_biz": "FP",
"it_b_pay": "2019-10-19 07:51:22",
"secondary_merchant_id": "ZZZ6",
"secondary_merchant_name": "AlphaPayTest",
"secondary_merchant_industry": "0001",
"sign": "JoErm4POMsuSLWZd5Dw%2FZmtfGzIlZX8E0w%2BPtgDJRZP3WVF5O2L5asGOkvYwb76zYhIvJgazbS0XxLGNFm%2Frrm7TPWhXrFYRSeKrFTsC%2B30Yqj0DSKVAkqwwUGZrHu9vS7QCoEQjLIqFrTzjy60eISKoFDxAVyO4bDS9czFyJlE%3D",
"sign_type": "RSA"
},
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20200303162209092-MO10OORNM",
"return_code": "SUCCESS"
}
银联返回数据示例
{
"partner_order_id": "ZZZ620200304093950",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "UnionPayOnline",
"sdk_params": "508581337784100197011",
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20200303162209092-MO10OORNM",
"return_code": "SUCCESS"
}
"partner_order_id": "ZZZ620200304093950",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "UnionPayOnline",
"sdk_params": "508581337784100197011",
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20200303162209092-MO10OORNM",
"return_code": "SUCCESS"
}
Miniprogram Payment - 创建小程序订单
接入微信小程序需完成海外主体认证,并且认证主体需要与在AlphaPay开通的商户主体一致。具体如何认证请查看微信公众平台相关文档。 支付宝小程序直接接入即可。用于小程序中发起支付,创建订单后返回小程序支付所需参数,该接口支持微信、支付宝小程序。
微信小程序接入参考文档
支付宝小程序接入参考文档
微信小程序接入参考文档
支付宝小程序接入参考文档
PUT |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/microapp_orders/{order_id} |
接入流程
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
JSON
字段 | 类型 | 描述 |
description | String | 必填,订单标题(最大长度128字符,超出自动截取) |
price | int | 必填,金额,单位为货币最小单位,例如使用100表示CAD1.00 |
currency | String |
币种代码 默认值: CAD 允许值: CAD , CNY |
notify_url | String | 支付通知url,详见支付成功回调,不填则不会推送支付通知 |
operator | String | 操作人员标识,用于商户系统识别操作人员 |
channel | String | 支付渠道,大小写敏感。允许值:"Alipay"、"Wechat"。 |
appid | String | 小程序 appid |
customer_id | String | 小程序 openid |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
partner_order_id | String | 商户订单ID |
full_name | String | 商户注册全名 |
partner_name | String | 商户名称 |
channel | String | 支付渠道 |
sdk_params | String | 小程序支付所需参数(Json字符串) |
result_code | String | SUCCESS表示创建订单成功,EXISTS表示订单已存在 |
partner_code | String | 商户编码 |
order_id | String | AlphaPay订单ID,同时也是微信订单ID,最终支付成功的订单ID可能不同 |
return_code | String | 执行结果 |
错误码
名称 | 描述 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_PAID | 订单已支付 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
进行支付
获得Sdk_params之后,使用参数接入微信小程序的支付,具体接入可参考 接入文档。发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/microapp_orders/ZZZ620200304144418?time=1583361857409&nonce_str=123&sign=0963e3350a057e5933c651af79ab441c789b585b3f2f36aab31289540e5bd2ef
发送数据示例
{
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"notify_url": "www.alphapay.com/success.php",
"operator": "dev01",
"channel": "Wechat",
"appid": "wx0000000000000001",
"customer_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"notify_url": "www.alphapay.com/success.php",
"operator": "dev01",
"channel": "Wechat",
"appid": "wx0000000000000001",
"customer_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
返回数据示例
{
"partner_order_id": "ZZZ620200304144418",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "Wechat",
"sdk_params":
{
"timestamp": "1583361857409",
"package": "prepay_id=wx0000000000000000000000000001",
"paySign": "D8048A08613E526CB8E4026533666210",
"appid": "wx0000000000000001",
"signType": "MD5",
"nonceStr": "0963e3350a057e5933c651af79ab441c789b585b3f2f36aab31289540e5bd2ef"
},
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20200303162209092-MO10OORNM",
"return_code": "SUCCESS"
}
"partner_order_id": "ZZZ620200304144418",
"full_name": "Hello Alpha Pay",
"partner_name": "Hello Alpha Pay",
"channel": "Wechat",
"sdk_params":
{
"timestamp": "1583361857409",
"package": "prepay_id=wx0000000000000000000000000001",
"paySign": "D8048A08613E526CB8E4026533666210",
"appid": "wx0000000000000001",
"signType": "MD5",
"nonceStr": "0963e3350a057e5933c651af79ab441c789b585b3f2f36aab31289540e5bd2ef"
},
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20200303162209092-MO10OORNM",
"return_code": "SUCCESS"
}
Retail Pay - 创建线下支付订单
线下支付订单接口用于带有扫码设备的收银终端进行对接,商户输入金额后要求客户出示支付码,用扫码枪扫码后将扫码内容和金额一并提交并完成支付操作。 线下支付订单接口现已兼容微信、支付宝通道和银联云闪付。
PUT |
https://pay.alphapay.ca/api/v1.0/micropay/partners/{partner_code}/orders/{order_id} |
接入流程
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或者6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
JSON
字段 | 类型 | 描述 |
description | String | 必填,订单标题(最大长度128字符,超出自动截取) |
price | int | 必填,金额,单位为货币最小单位,例如使用100表示CAD1.00 |
currency | String |
币种代码 默认值: CAD 允许值: CAD , CNY |
notify_url | String | 支付通知url,详见支付成功回调,不填则不会推送支付通知 |
device_id | String | 必填,设备ID。此ID只为标记支付机器,并不能作为实际的验证。 |
auth_code | String | 必填,扫描用户微信/支付宝客户端得到的支付码 |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
partner_order_id | String | 商户订单ID |
input_fee | int | 输入金额 (不含手续费) |
create_time | String | 订单创建时间(最新订单为准)(yyyy-MM-dd HH:mm:ss,加拿大西部时间) |
real_fee | int | 实际支付金额,单位是货币最小面值单位(目前等于订单金额,为卡券预留) |
total_fee | int | 订单金额,单位是货币最小面值单位 |
order_description | String | 订单描述 |
channel | String | 支付渠道 Alipay、Wechat、UnionPay |
result_code | String |
|
currency | String | 币种,通常为CAD |
customer_id | String | 微信、支付宝或银联云闪付用户ID |
return_code | String | 执行结果 |
order_id | String | AlphaPay订单ID,同时也是微信、支付宝订单ID,最终支付成功的订单ID可能不同 |
错误码
名称 | 描述 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_PAID | 订单已支付 |
AUTHCODEEXPIRE | 二维码已过期 |
NOTENOUGH | 余额不足 |
NOTSUPORTCARD | 不支持卡类型 |
AUTH_CODE_ERROR | 二维码被重复提交 |
AUTH_CODE_INVALID | 不是微信支付二维码 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/micropay/partners/ZZZ6/orders/ZZZ620200304151231?time=1583363550018&nonce_str=123&sign=cb03434d656c27a661ab29bbe6f35657038d938b91db3d66e0fc5a30fec267d5
请求数据示例
{
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"notify_url": "www.alphapay.com/success.php",
"device_id": "00000000001",
"auth_code": "000000000000000001",
}
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"notify_url": "www.alphapay.com/success.php",
"device_id": "00000000001",
"auth_code": "000000000000000001",
}
返回数据示例
{
"partner_order_id": "ZZZ620200304151231",
"input_fee": 1,
"create_time": "2020-03-04 15:14:46",
"real_fee": 1,
"total_fee": 1,
"order_description": "DEVELOPER TEST-ZZZ620200304151231",
"channel": "Wechat",
"result_code": "PAYING",
"currency": "CAD",
"customer_id": null,
"return_code": "SUCCESS",
"order_id": "0240520200304151446961208"
}
"partner_order_id": "ZZZ620200304151231",
"input_fee": 1,
"create_time": "2020-03-04 15:14:46",
"real_fee": 1,
"total_fee": 1,
"order_description": "DEVELOPER TEST-ZZZ620200304151231",
"channel": "Wechat",
"result_code": "PAYING",
"currency": "CAD",
"customer_id": null,
"return_code": "SUCCESS",
"order_id": "0240520200304151446961208"
}
Retail Pay - 创建线下QR Code支付单
线下QRCode支付用于对接无扫码设备的收银终端,下单后得到二维码地址,自行生成二维码图片后展示在收银终端屏幕上,并由用户使用对应支付客户端进行扫码支付。 线下QRCode现已同时兼容支付宝、微信支付客户端进行支付。
PUT |
https://pay.alphapay.ca/api/v1.0/retail_qrcode/partners/{partner_code}/orders/{order_id} |
接入流程
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
JSON
字段 | 类型 | 描述 |
description | String | 必填,订单标题(最大长度128字符,超出自动截取) |
price | int | 必填,金额,单位为货币最小单位,例如使用100表示CAD1.00 |
currency | String |
币种代码 默认值: CAD 允许值: CAD , CNY |
notify_url | String | 支付通知url,详见支付成功回调,不填则不会推送支付通知 |
device_id | String | 必填,设备ID |
operator | String | 操作人员标识,用于商户系统识别操作人员 |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
partner_order_id | String | 商户订单ID |
full_name | String | 商户注册全名 |
code_url | String | 支付码字符串,商户可以据此自行生产二维码 |
partner_name | String | 商户名称 |
result_code | String | SUCCESS表示创建订单成功,EXISTS表示订单已存在 |
partner_code | String | 商户编码 |
order_id | String | AlphaPay订单ID,同时也是微信、支付宝订单ID,最终支付成功的订单ID可能不同 |
return_code | String | 执行结果 |
qrcode_img | String | Base64封装的二维码图片,可直接作为img的src属性 |
错误码
名称 | 描述 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_PAID | 订单已支付 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/retail_qrcode/partners/ZZZ6/orders/ZZZ620200304153159?time=1583364718677&nonce_str=123&sign=f458b8f9e3643794466c34decbd1cc4170651d7679aef4a73d3772dd3eab523e
请求数据示例
{
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"notify_url": "www.alphapay.com/success.php",
"device_id": "00000000001",
"operator": "dev01",
}
"description": "DEVELOPER TEST",
"price": 1,
"currency": "CAD",
"notify_url": "www.alphapay.com/success.php",
"device_id": "00000000001",
"operator": "dev01",
}
返回数据示例
{
"partner_order_id": "ZZZ620200304153159",
"full_name": "Hello Alpha Pay",
"code_url": "https://pay.alphapay.ca/api/v1.0/payment/partners/ZZZ6/orders/0240520200304153243297379/retail_pay",
"partner_name": "Hello Alpha Pay",
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "0240520200304153243297379",
"return_code": "SUCCESS",
"qrcode_img": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsAQAAAABRBrPYAAACFElEQVR42u2aS27DMAxEmZWO4Zs68k11hC69EivOSPm4CdCtBhICw3VeF6VH5JCq+X/Wjy1sYQtb2MIUsGqx7l72uPrh5X5u7iWeJi0s7sueSmMyrn7azeOmqmHFEh8GfDu3FpMb4rMrYvHQthxXrCSLhbBD2yFyxEcSg8gRDRtfHd/2wtRY/7ZcPh/z29RYXz1ZITKph+JDzZoZq9i8ZttxIjKtJJ3t035sGUwK80jIAbMeIT9D5xEiKay95TqCkHtVQv09r4lLAGuqdjysyNU5ii/evkthjupjo+Du+BV7SdcyGINQaRep7R6N8i7y+TFDcsYbp7XApqbT0MK6sH244s3Z/kSU1DBKur1xGsX6zR5PjqGzey1GTecRiovIBTD2dNAzMrPTMaJnT1rY0DMlDV+BEKVrIzA91souDMYoRqF5uItL3BQwSLovJGdG5upDZseiTw9HEVk6s1UfLXxOUhjKLv981Fzs6BvGFFUMS8xdPkYTIOkb5TBHNGAtaBpRjP7shfkxNgKcqvVej2PhnOQwi/nhgw8DecZ7r2pYuCaMvmEdsaM5Gb67FMZFVY8a1G2kGFafvXk/y2A92pPnpIUBeLRyxzCQFRtcC8PxzRh6x8372F8NQxsbaTnmw9vjOFIS2+ko0BHAXF0MhgDGg6rRsLPZse34fJ41M2bPs4wX04juQAtb/+KysIUtbGH62C+l+/3an4SIyQAAAABJRU5ErkJggg=="
}
"partner_order_id": "ZZZ620200304153159",
"full_name": "Hello Alpha Pay",
"code_url": "https://pay.alphapay.ca/api/v1.0/payment/partners/ZZZ6/orders/0240520200304153243297379/retail_pay",
"partner_name": "Hello Alpha Pay",
"result_code": "SUCCESS",
"partner_code": "ZZZ6",
"order_id": "0240520200304153243297379",
"return_code": "SUCCESS",
"qrcode_img": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsAQAAAABRBrPYAAACFElEQVR42u2aS27DMAxEmZWO4Zs68k11hC69EivOSPm4CdCtBhICw3VeF6VH5JCq+X/Wjy1sYQtb2MIUsGqx7l72uPrh5X5u7iWeJi0s7sueSmMyrn7azeOmqmHFEh8GfDu3FpMb4rMrYvHQthxXrCSLhbBD2yFyxEcSg8gRDRtfHd/2wtRY/7ZcPh/z29RYXz1ZITKph+JDzZoZq9i8ZttxIjKtJJ3t035sGUwK80jIAbMeIT9D5xEiKay95TqCkHtVQv09r4lLAGuqdjysyNU5ii/evkthjupjo+Du+BV7SdcyGINQaRep7R6N8i7y+TFDcsYbp7XApqbT0MK6sH244s3Z/kSU1DBKur1xGsX6zR5PjqGzey1GTecRiovIBTD2dNAzMrPTMaJnT1rY0DMlDV+BEKVrIzA91souDMYoRqF5uItL3BQwSLovJGdG5upDZseiTw9HEVk6s1UfLXxOUhjKLv981Fzs6BvGFFUMS8xdPkYTIOkb5TBHNGAtaBpRjP7shfkxNgKcqvVej2PhnOQwi/nhgw8DecZ7r2pYuCaMvmEdsaM5Gb67FMZFVY8a1G2kGFafvXk/y2A92pPnpIUBeLRyxzCQFRtcC8PxzRh6x8372F8NQxsbaTnmw9vjOFIS2+ko0BHAXF0MhgDGg6rRsLPZse34fJ41M2bPs4wX04juQAtb/+KysIUtbGH62C+l+/3an4SIyQAAAABJRU5ErkJggg=="
}
CommonApi - 获取当前汇率
获取当前微信CAD兑CNY汇率值(1CAD=?CNY),该汇率仅做参考,以实际成交汇率为准。
GET |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/channel_exchange_rate |
Header
字段 | 描述 |
Accept | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
wechat_rate | Double | 微信汇率 |
alipay_retail_rate | Double | 支付宝线下渠道汇率 |
alipay_online_rate | Double | 支付宝线上渠道汇率 |
return_code | String | 执行结果 |
错误码
名称 | 描述 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/channel_exchange_rate?time=1583365498458&nonce_str=123&sign=94cae1d62877b717f85bc68f6e4b493c592fec3cfb2ba2c81d615defc18bdf3e
返回数据示例
{
"wechat_rate": 5.2118990000,
"alipay_retail_rate": 5.212000,
"alipay_online_rate": 5.236220,
"return_code": "SUCCESS"
}
"wechat_rate": 5.2118990000,
"alipay_retail_rate": 5.212000,
"alipay_online_rate": 5.236220,
"return_code": "SUCCESS"
}
CommonApi - 查询订单状态
查询范围包括QRCode订单、JSAPI订单和线下支付订单。
GET |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/orders/{order_id} |
Header
字段 | 描述 |
Accept | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号 |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
create_time | String | 订单创建时间(最新订单为准)(yyyy-MM-dd HH:mm:ss,加拿大西部时间) |
real_fee | int | 实际支付金额,单位是货币最小面值单位(目前等于订单金额,为卡券预留) |
order_decription | int | 订单描述 |
channel | String | 支付渠道 Alipay、Wechat、UnionPay |
channel_order_id | String | 渠道方(Alipay/Wechat/UnionPay)订单号 |
pay_time | String | 支付时间(yyyy-MM-dd HH:mm:ss,加拿大西部时间) |
partner_order_id | String | 商户订单ID |
input_fee | int | 订单输入金额,不含手续费 |
rate | Double | 交易时使用的汇率,1CAD=?CNY |
total_fee | int | 订单金额,单位是货币最小面值单位 |
result_code | String |
|
currency | String | 币种,通常为CAD |
customer_id | String | 微信用户id、支付宝用户id、银联云闪付用户id |
return_code | String | 执行结果 |
order_id | String | AlphaPay订单ID,同时也是微信、支付宝订单ID,最终支付成功的订单ID可能不同 |
Error Code
名称 | 描述 |
ORDER_NOT_EXIST | 订单不存在 |
ORDER_MISMATCH | 订单号与商户不匹配 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/orders/ZZZ620200304151231?time=1583366028258&nonce_str=123&sign=969ab2c7486f7327fb2ed358b66a2e997e40263761c5c7aea2a689dec5ee681a
返回数据示例
{
"create_time": "2020-03-04 15:14:46",
"real_fee": 1,
"order_description": "DEVELOPER TEST-ZZZ620200304151231",
"channel": "Wechat",
"channel_order_id": "4200000491202003056383825269",
"pay_time": "2020-03-04 15:14:47",
"partner_order_id": "ZZZ620200304151231",
"input_fee": 1,
"rate": 5.17620320,
"total_fee": 1,
"result_code": "PAY_SUCCESS",
"currency": "CAD",
"customer_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"return_code": "SUCCESS",
"order_id": "0240520200304151446961208"
}
"create_time": "2020-03-04 15:14:46",
"real_fee": 1,
"order_description": "DEVELOPER TEST-ZZZ620200304151231",
"channel": "Wechat",
"channel_order_id": "4200000491202003056383825269",
"pay_time": "2020-03-04 15:14:47",
"partner_order_id": "ZZZ620200304151231",
"input_fee": 1,
"rate": 5.17620320,
"total_fee": 1,
"result_code": "PAY_SUCCESS",
"currency": "CAD",
"customer_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"return_code": "SUCCESS",
"order_id": "0240520200304151446961208"
}
CommonApi - 申请退款
一笔支付订单可以分多次退款,退款总金额不得超过实际支付金额,退款币种与支付订单一致。
PUT |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/orders/{order_id}/refunds/{refund_id} |
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
refund_id | String | 必填,商户退款单号(如商户系统没有refund_id, 可与order_id一致) |
JSON
字段 | 类型 | 描述 |
fee | int | 必填,退款金额,单位是货币最小单位,单个订单退款单金额总和不能超过用户支付金额(如客人支付手续费:需要检验订单获得real_fee, 退款可同时退手续费) |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
amount | int | 退款金额,单位是货币最小单位 |
channel_refund_id | String | 退款渠道单号,如果有则显示 |
channel | String | 支付渠道,“Wechat”、“Alipay” 或者 “UnionPay” |
currency | String | 币种, 通常为CAD |
result_code | String |
|
refund_id | String | AlphaPay退款单号 |
partner_refund_id | String | 商户提交的退款单号 |
return_code | String | 执行结果 |
错误码
名称 | 描述 |
ORDER_NOT_EXIST | 订单不存在 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_NOT_PAID | 订单未支付完成,无法退款 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/orders/ZZZ620200304151231/refunds/ZZZ620200304151231?time=1583368161186&nonce_str=123&sign=5c94900e1e379d2e19f92beeaf06e9ba7f6e62fa05daac24e2c84921a2237553
请求数据示例
{
"fee": 1
}
"fee": 1
}
返回数据示例
{
"amount": 1,
"channel_refund_id": "50000503822020030515001953629",
"channel": "Wechat",
"currency": "CAD",
"result_code": "SUCCESS",
"refund_id": "ZZZ6R20200304163001069H5HILC9JBW",
"partner_refund_id": "ZZZ620200304151231",
"return_code": "SUCCESS"
}
"amount": 1,
"channel_refund_id": "50000503822020030515001953629",
"channel": "Wechat",
"currency": "CAD",
"result_code": "SUCCESS",
"refund_id": "ZZZ6R20200304163001069H5HILC9JBW",
"partner_refund_id": "ZZZ620200304151231",
"return_code": "SUCCESS"
}
CommonApi - 查询退款状态
GET |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/orders/{order_id}/refunds/{refund_id} |
Header
字段 | 描述 |
Accept | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
refund_id | String | 必填,商户退款单号(如商户系统没有refund_id, 可与order_id一致) |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
amount | int | 退款金额,单位是货币最小单位 |
channel_refund_id | String | 退款渠道单号,如果有则显示 |
channel | String | 支付渠道,“Wechat”、“Alipay” 或者 “UnionPay” |
currency | String | 币种, 通常为CAD |
result_code | String |
|
refund_id | String | AlphaPay退款单号 |
partner_refund_id | String | 商户提交的退款单号 |
return_code | String | 执行结果 |
错误码
名称 | 描述 |
ORDER_NOT_EXIST | 订单不存在 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_NOT_PAID | 订单未支付完成,无法退款 |
REFUND_NOT_EXIST | 退款单不存在 |
REFUND_MISMATCH | 退款单号与支付单不匹配 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/orders/ZZZ620200304151231/refunds/ZZZ620200304151231?time=1583369179194&nonce_str=123&sign=9b3d71132eee75db0cbcf839092b82b744a9ddd01704b54d1b90d6d03c348236
返回数据示例
{
"amount": 1,
"channel_refund_id": "50000503822020030515001953629",
"channel": "Wechat",
"currency": "CAD",
"result_code": "FINISHED",
"refund_id": "ZZZ6R20200304163001069H5HILC9JBW",
"partner_refund_id": "ZZZ620200304151231",
"return_code": "SUCCESS"
}
"amount": 1,
"channel_refund_id": "50000503822020030515001953629",
"channel": "Wechat",
"currency": "CAD",
"result_code": "FINISHED",
"refund_id": "ZZZ6R20200304163001069H5HILC9JBW",
"partner_refund_id": "ZZZ620200304151231",
"return_code": "SUCCESS"
}
CommonApi - 查看账单
GET |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/orders |
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
Query Params
字段 | 类型 | 描述 |
date | String | 订单创建日期,'yyyyMMdd'格式,加拿大西部时间,不填默认查询所有订单 |
status | String |
订单状态
允许值: ALL , PAID , REFUNDED |
page | int |
页码,从1开始计算 默认值: 1 |
limit | int |
每页条数 默认值: 10 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
ROOT
字段 | 类型 | 描述 |
pagination | JSON | 分页信息 |
data | JSON[] | 订单列表 |
analysis | JSON | 统计信息 |
return_code | String | 执行结果 |
Pagination
字段 | 类型 | 描述 |
page | int | 页码 |
limit | int | 每页条数 |
totalCount | int | 总条数 |
totalPages | int | 总页数 |
Data
字段 | 类型 | 描述 |
create_time | String | 格式'yyyy-MM-dd HH:mm:ss',加拿大西部时间,订单创建时间 |
real_fee | int | 订单支付金额,单位是货币最小单位 |
partner_name | String | 商户名称 |
channel | String | 支付渠道 Alipay、Wechat、UnionPay |
partner_order_id | String | 商户订单ID |
pre_authorization | Boolean | “true”表示预授权订单,“false”表示普通订单 |
total_fee | Double | 订单金额,单位是货币最小单位 |
refund_fee | Double | 当前订单退款金额,单位是货币最小单位 |
tip_amount | Double | 小费金额,单位是货币最小单位 |
currency | String | 币种 |
partner_code | String | 商户编码 |
order_id | String | AlphaPay订单ID |
order_body | String | 订单标题 |
pay_time | String | 格式'yyyy-MM-dd HH:mm:ss',加拿大西部时间,支付时间,未支付订单为空 |
status | String |
订单状态
|
gateway | String | 订单模式
|
channel_error_message | String | 订单创建或支付失败的原因 |
Analysis
字段 | 类型 | 描述 |
order_count | int | 支付成功订单数(包含有退款订单) |
total_fee | int | 成交订单总额,货币最小单位 |
real_fee | int | 支付总额,货币最小单位 |
错误码
名称 | 描述 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/orders?time=1583369635364&nonce_str=123&sign=c88e05a64d6f42d76111e7d96c3ae109f28c7bc15a8a434a7978a874532ad0f1
返回数据示例
{
"pagination": {
"endRow": 10,
"firstPage": true,
"hasNextPage": true,
"hasPrePage": false,
"lastPage": false,
"limit": 10,
"nextPage": 2,
"offset": 0,
"page": 1,
"prePage": 1,
"slider": [
1,
2,
3,
4,
5,
6,
7
],
"startRow": 1,
"totalCount": 11864,
"totalPages": 1187
},
"data": [
{
"create_time": "2017-11-24 12:31:25",
"real_fee": 1.0000,
"partner_name": "Hello Alpha Pay",
"channel": "Wechat",
"partner_order_id": "ZZZ62017-11-24 12:31:23",
"pre_authorization": false,
"ext_params": "NULL",
"total_fee": 1.0000,
"refund_fee": 0.0000,
"tip_amount": 0.0000,
"currency": "CAD",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20171124203125377-JTKF3IIBJ",
"order_body": "test-ZZZ62017-11-24 12:31:23",
"gateway": "Online API",
"status": "CLOSED"
}
],
"analysis": {
"cny_display_amount": 665.5100,
"order_count": 1992,
"pre_cny_display_amount": 0.0000,
"pre_refund_fee": 0.0500,
"refund_fee": -3196.8700,
"paid_fee": 3288.3200,
"customers": 177,
"display_amount": 3157.2100,
"pre_display_amount": 0.0500
},
"return_code": "SUCCESS"
}
"pagination": {
"endRow": 10,
"firstPage": true,
"hasNextPage": true,
"hasPrePage": false,
"lastPage": false,
"limit": 10,
"nextPage": 2,
"offset": 0,
"page": 1,
"prePage": 1,
"slider": [
1,
2,
3,
4,
5,
6,
7
],
"startRow": 1,
"totalCount": 11864,
"totalPages": 1187
},
"data": [
{
"create_time": "2017-11-24 12:31:25",
"real_fee": 1.0000,
"partner_name": "Hello Alpha Pay",
"channel": "Wechat",
"partner_order_id": "ZZZ62017-11-24 12:31:23",
"pre_authorization": false,
"ext_params": "NULL",
"total_fee": 1.0000,
"refund_fee": 0.0000,
"tip_amount": 0.0000,
"currency": "CAD",
"partner_code": "ZZZ6",
"order_id": "ZZZ6-20171124203125377-JTKF3IIBJ",
"order_body": "test-ZZZ62017-11-24 12:31:23",
"gateway": "Online API",
"status": "CLOSED"
}
],
"analysis": {
"cny_display_amount": 665.5100,
"order_count": 1992,
"pre_cny_display_amount": 0.0000,
"pre_refund_fee": 0.0500,
"refund_fee": -3196.8700,
"paid_fee": 3288.3200,
"customers": 177,
"display_amount": 3157.2100,
"pre_display_amount": 0.0500
},
"return_code": "SUCCESS"
}
CommonApi - 查看账单流水
本接口将列出商户当日所有流水,包括所有接口(含非网关接口)支付通道的付款、AlphaPay优惠补贴、退款、 退款失败补正、系统补正、营销账户转入转出等,不含清算信息。
注意: 一笔付款订单或退款订单均可能对应多条流水记录。
注意: 一笔付款订单或退款订单均可能对应多条流水记录。
GET |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/transactions |
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
Query Params
字段 | 类型 | 描述 |
date | String | 必填, 账单日期,'yyyyMMdd'格式,加拿大西部时间 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
ROOT
字段 | 类型 | 描述 |
order_count | int | 付款单数 |
transaction_count | int | 流水总条目 |
result_code | String | 业务执行结果 |
transactions | JSON[] | 流水列表 |
refund_count | int | 退款单数 |
return_code | String | 执行结果 |
Transactions
字段 | 类型 | 描述 |
exchange_rate | Double | 使用汇率 |
customer_payment_amount | int | 用户实际支付金额,单位是货币最小单位 |
channel | String | 支付渠道 Alipay、Wechat、UnionPay |
remark | String | 备注 |
channel_order_id | String | 渠道方(Alipay/Wechat/UnionPay)订单号 |
type | String | 流水类型
|
refund_id | String | AlphaPay退款单ID(仅退款或退款失败补正) |
total_surcharge | int | 手续费总额(CAD分) |
partner_order_id | String | 商户订单ID |
input_amount | int | 订单输入金额,单位是货币最小单位 |
total_amount | int | 订单总金额,单位是货币最小单位 |
settle_amount | int | 结算金额,币种为CAD,单位是货币最小单位 |
transaction_time | String | 交易时间,格式'yyyy-MM-dd HH:mm:ss',加拿大西部时间 |
currency | String | 币种 |
order_id | String | AlphaPay订单ID |
partner_refund_id | String | 商户系统提交退款ID(仅退款或退款失败补正) |
gateway | String | 下单接口
|
surcharge_rate | String | 手续费费率(x%) |
错误码
名称 | 描述 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/transactions?date=20200304&time=1583433703274&nonce_str=123&sign=3528e22beff8f85b5f1534c22664684db7e80672645dd5586945d40043165144
返回数据示例
{
"order_count": 1,
"transaction_count": 2,
"result_code": "SUCCESS",
"transactions": [
{
"exchange_rate": 5.176203,
"customer_payment_amount": 1,
"channel": "Wechat",
"remark": "MICROPAY:DEVELOPER TEST-ZZZ620200304151231",
"channel_order_id": "4200000491202003056383825269",
"type": "Credit",
"refund_id": null,
"total_surcharge": 0,
"partner_order_id": "ZZZ620200304151231",
"input_amount": 1,
"total_amount": 1,
"settle_amount": 1,
"transaction_time": "20200304151447",
"currency": "CAD",
"order_id": "0240520200304151446961208",
"partner_refund_id": null,
"gateway": 5,
"surcharge_rate": 0.0200
},
{
"exchange_rate": 5.176203,
"customer_payment_amount": 1,
"channel": "Wechat",
"remark": "GATEWAY - Refund For Order:DEVELOPER TEST-ZZZ620200304151231",
"channel_order_id": "50000503822020030515001953629",
"type": "Debit",
"refund_id": "ZZZ6R20200304163001069H5HILC9JBW",
"total_surcharge": 0,
"partner_order_id": "ZZZ620200304151231",
"input_amount": 1,
"total_amount": 1,
"settle_amount": 1,
"transaction_time": "20200304163003",
"currency": "CAD",
"order_id": "0240520200304151446961208",
"partner_refund_id": "ZZZ620200304151231",
"gateway": 5,
"surcharge_rate": 0.0200
}
],
"refund_count": 1,
"return_code": "SUCCESS"
}
"order_count": 1,
"transaction_count": 2,
"result_code": "SUCCESS",
"transactions": [
{
"exchange_rate": 5.176203,
"customer_payment_amount": 1,
"channel": "Wechat",
"remark": "MICROPAY:DEVELOPER TEST-ZZZ620200304151231",
"channel_order_id": "4200000491202003056383825269",
"type": "Credit",
"refund_id": null,
"total_surcharge": 0,
"partner_order_id": "ZZZ620200304151231",
"input_amount": 1,
"total_amount": 1,
"settle_amount": 1,
"transaction_time": "20200304151447",
"currency": "CAD",
"order_id": "0240520200304151446961208",
"partner_refund_id": null,
"gateway": 5,
"surcharge_rate": 0.0200
},
{
"exchange_rate": 5.176203,
"customer_payment_amount": 1,
"channel": "Wechat",
"remark": "GATEWAY - Refund For Order:DEVELOPER TEST-ZZZ620200304151231",
"channel_order_id": "50000503822020030515001953629",
"type": "Debit",
"refund_id": "ZZZ6R20200304163001069H5HILC9JBW",
"total_surcharge": 0,
"partner_order_id": "ZZZ620200304151231",
"input_amount": 1,
"total_amount": 1,
"settle_amount": 1,
"transaction_time": "20200304163003",
"currency": "CAD",
"order_id": "0240520200304151446961208",
"partner_refund_id": "ZZZ620200304151231",
"gateway": 5,
"surcharge_rate": 0.0200
}
],
"refund_count": 1,
"return_code": "SUCCESS"
}
CommonApi - 查看清算详情
本接口将列出商户所选日期的所有流水(不包含本日流水),包括所有接口(含非网关接口)支付通道的付款、AlphaPay优惠补贴、退款、 退款失败补正、系统补正、营销账户转入转出等,不含清算信息。
注意一笔付款订单或退款订单均可能对应多条流水记录。
注意一笔付款订单或退款订单均可能对应多条流水记录。
GET |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/settlements |
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
Query Params
字段 | 类型 | 描述 |
date | String | 必填, 清算日期,'yyyyMMdd'格式,加拿大西部时间 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
ROOT
字段 | 类型 | 描述 |
order_count | int | 付款单数 |
total_credit | int | 入账总金额(CAD分) |
transaction_count | int | 流水总条目 |
total_transfer | int | 打款总额(CAD分) |
total_debit | int | 支出总金额(CAD分) |
transactions | JSON[] | 流水列表 |
settle_days | String | 清算周期(T+n) |
total_surcharge | int | 手续费总额(CAD分) |
settle_to | String | 订单截止日期,yyyyMMdd |
result_code | String | 业务执行结果 |
settle_from | String | 订单起始日期,yyyyMMdd |
refund_count | int | 退款单数 |
return_code | String | 执行结果 |
Transactions
字段 | 类型 | 描述 |
surchargee | int | 手续费金额,单位是CAD分 |
exchange_rate | Double | 使用汇率 |
channel | String | 支付渠道 Alipay、Wechat、UnionPay |
remark | String | 备注 |
channel_order_id | String | 渠道方(Alipay/Wechat/UnionPay)订单号 |
type | String | 流水类型
|
refund_id | String | AlphaPay退款单ID(仅退款或退款失败补正) |
partner_order_id | String | 商户订单ID |
input_amount | int | 订单输入金额,单位是货币最小单位 |
total_amount | int | 订单总金额,单位是货币最小单位 |
transfer_amount | int | 打款金额,单位是CAD分 |
settle_amount | int | 结算金额,币种为CAD,单位是货币最小单位 |
transaction_time | String | 交易时间,格式'yyyy-MM-dd HH:mm:ss',加拿大西部时间 |
currency | String | 币种 |
order_id | String | AlphaPay订单ID |
partner_refund_id | String | 商户系统提交退款ID(仅退款或退款失败补正) |
gateway | String | 下单接口
|
customer_payment_amount | int | 用户实际支付金额,单位是货币最小单位 |
surcharge_rate | String | 手续费费率(x%) |
错误码
名称 | 描述 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
Request Example
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/settlements?date=20200303&time=1583443132970&nonce_str=123&sign=b53c903adc697b974b4eeb2c4523a90eb63689193a8b93283cf3486aee67b08d
Responce Example
{
"order_count": 1,
"total_credit": 1,
"transaction_count": 1,
"total_transfer": 1,
"total_debit": 0,
"transactions": [
{
"surcharge": 1,
"exchange_rate": 5.234527,
"channel": "Wechat",
"remark": "MICROPAY:AlphaPay Retail Order",
"channel_order_id": "4200000491202002283776594113",
"type": "Credit",
"refund_id": null,
"partner_order_id": null,
"input_amount": 1,
"total_amount": 1,
"transfer_amount": 1,
"settle_amount": 1,
"transaction_time": "20200227165517",
"currency": "CAD",
"order_id": "0374020200227165515743559",
"partner_refund_id": null,
"gateway": 0,
"surcharge_rate": "0.1%"
}
],
"settle_days": "T+2",
"total_surcharge": 1,
"settle_to": "20200301",
"result_code": "SUCCESS",
"settle_from": "20200227",
"refund_count": 0,
"return_code": "SUCCESS"
}
"order_count": 1,
"total_credit": 1,
"transaction_count": 1,
"total_transfer": 1,
"total_debit": 0,
"transactions": [
{
"surcharge": 1,
"exchange_rate": 5.234527,
"channel": "Wechat",
"remark": "MICROPAY:AlphaPay Retail Order",
"channel_order_id": "4200000491202002283776594113",
"type": "Credit",
"refund_id": null,
"partner_order_id": null,
"input_amount": 1,
"total_amount": 1,
"transfer_amount": 1,
"settle_amount": 1,
"transaction_time": "20200227165517",
"currency": "CAD",
"order_id": "0374020200227165515743559",
"partner_refund_id": null,
"gateway": 0,
"surcharge_rate": "0.1%"
}
],
"settle_days": "T+2",
"total_surcharge": 1,
"settle_to": "20200301",
"result_code": "SUCCESS",
"settle_from": "20200227",
"refund_count": 0,
"return_code": "SUCCESS"
}
CommonApi - 订单暂停清算
订单暂停清算业务,实际客人已经支付订单,商户想把支付款留在账户内,暂不清算。
PUT |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/orders/{order_id}/settle_lock |
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
result_code | String |
|
return_code | String | 执行结果 |
错误码
名称 | 描述 |
ORDER_NOT_EXIST | 订单不存在 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_NOT_PAID | 订单未支付完成,无法退款 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/orders/ZZZ620200304151231/settle_lock?time=1587855343247&nonce_str=123&sign=960e0cb7dfe16abfa821a198b3b0d005621340880f85d854887d6a7c023a4a15
返回数据示例
{
"result_code": "SUCCESS",
"return_code": "SUCCESS"
}
"result_code": "SUCCESS",
"return_code": "SUCCESS"
}
CommonApi - 恢复正常清算
订单恢复正常清算。
PUT |
https://pay.alphapay.ca/api/v1.0/gateway/partners/{partner_code}/orders/{order_id}/release_settle_lock |
Header
字段 | 描述 |
Accept | application/json |
Content-Type | application/json |
Path Variable
字段 | 类型 | 描述 |
partner_code | String | 必填,商户编码,由4位或6位大写字母或数字构成 |
order_id | String | 必填,商户支付订单号,要求同一商户唯一 (最大长度50字符) |
Query Params
字段 | 类型 | 描述 |
time | Long | 必填,UTC毫秒时间戳 |
nonce_str | String | 必填,随机字符串 |
sign | String | 必填,签名(需生成一个新的sign) |
Success 200
字段 | 类型 | 描述 |
result_code | String |
|
return_code | String | 执行结果 |
错误码
名称 | 描述 |
ORDER_NOT_EXIST | 订单不存在 |
ORDER_MISMATCH | 订单号与商户不匹配 |
ORDER_NOT_PAID | 订单未支付完成,无法退款 |
SYSTEMERROR | 系统内部异常 |
INVALID_SHORT_ID | 商户编码不合法或没有对应商户 |
SIGN_TIMEOUT | 签名超时,time字段与服务器时间相差超过5分钟 |
INVALID_SIGN | 签名错误 |
PARAM_INVALID | 参数不符合要求,具体细节可参考return_msg字段 |
NOT_PERMITTED | 未开通网关支付权限 |
INVALID_CHANNEL | 不合法的支付渠道名称,请检查大小写 |
ERROR
名称 | 描述 |
return_code | 错误代码 |
return_msg | 错误描述 |
发送请求示例
https://pay.alphapay.ca/api/v1.0/gateway/partners/ZZZ6/orders/ZZZ620200304151231/release_settle_lock?time=1587856192854&nonce_str=123&sign=c5529fc2eb85c235f83a59553936e68b9fa5965ec25f7a145d4a87969d7b04cb
返回数据示例
{
"result_code": "SUCCESS",
"return_code": "SUCCESS"
}
"result_code": "SUCCESS",
"return_code": "SUCCESS"
}