对接须知
回调测试¶
- 测试状态下将不会产生流水,不会加减商户余额,但是会产生订单,代付可正常请求
- 测试状态下,接口请求成功后将会在
60秒内自动回调成功 - 若需要回调失败,请将
name字段的值传为FAILURE。 代收若需实付金额比订单金额**大**则将name字段的值传为OverOrderAmount,实收金额会随机返回amount+rand(amount/2)的金额代收若需实付金额比订单金额**小**则将name字段的值传为LessOrderAmount,实收金额会随机返回rand(amount/2)的金额- 如需
冲正状态则name字段带后缀REVERSE,例如FAILURE_REVERSE(先回调失败然后回调成功),example_REVERSE(先回调成功然后回调失败)
网关地址¶
| 国家 | 协议 | 域名 | 回调IP | 描述 |
|---|---|---|---|---|
| 印度 | HTTPS | {accessId}.kamdpay.com | 13.202.16.105 | 支付网关,请根据需要添加回调IP白名单 |
构造请求¶
请求URI¶
<protcol>://<domain>/<requestPath>
参数说明:
| 参数 | 必选 | 描述 |
|---|---|---|
| protocol | 是 | 请求使用的协议,如HTTP, HTTPS。HTTPS表示通过的安全的HTTPS访问该资源,请参考网关地址中的协议字段 |
| domain | 是 | 网关域名,请参考网关地址中的域名字段 |
| requestPath | 是 | 请求路径,具体可参考对应接口文档中的请求路径字段 |
请求方法¶
| 方法 | 说明 |
|---|---|
| POST | 本文档中所有请求都是以POST请求方式发出 |
请求头¶
| 请求头 | 必填 | 值 |
|---|---|---|
| Content-Type | 是 | application/json |
请求消息体¶
具体请求参数请参考对应接口的
请求参数
| 参数名 | 必填 | 类型 | 示例 | 描述 |
|---|---|---|---|---|
| accessId | 是 | string | AK1070400fc5f4b1e78 | 接入ID,创建商户后会提供 |
| timestamp | 是 | string | 1733912358000 | unix(毫秒-13位)时间戳, 和我方服务器时间误差不可超过1分钟 |
| signNonce | 是 | string | aaa123123 | 签名随机字符串,1分钟内不可重复 |
| sign | 是 | string | 022af4023d2ba3e197c5e2162e87b9fc | 请求签名, 请参考签名规则 |
{
"accessId": "AK796512861378",
"amount": "10000",
"calbackUrl": "",
"email": "example@example.xyz",
"merchantOrderNo": "daa02991-db2d-41a4-b7b2-ef2b0e5b506c",
"name": "example",
"phone": "7277528013",
"sign": "a9668d33936f0c98b20dd74d8e02efe2",
"signNonce": "0.zg0yveykqs",
"timestamp": "1744967642023"
}
请求签名¶
Info
签名方式请求是通过对原始请求参数通过一定加密算法生成一个签名值,请求带什么参数就对所携带的参数进行签名,如果签了名但是请求中没有携带该参数则会导致验签失败,如果携带了参数但是没有签名也会导致验签失败
-
获取请求参数集合
requestMap, 如: -
对集合
requestMap中非空参数值按照参数名ASCII码从小到大排序(字典序), 使用URL键值对格式key1=value1&key2=value2&key3=value3拼接成字符串requestParamsStr,待签名串应遵循如下规范:- 参数名
ASCII码从小到大排序 - 如果参数的
值为空不参与签名 - 参数名
区分大小写 - 接口可能增加或减少字段,签名时须支持增加或减少的字段
- 请求参数中必须包含参数"
signNonce"且不为空,值为随机字符串,该值1分钟内不可重复,该参数必须参与签名 - 请求参数中必须包含参数"
timestamp"且不为空,值为当前毫秒(13位)时间戳,该值时间不能和服务器时间相差大于1分钟,该参数必须参与签名
- 参数名
-
得到的待签名的字符串
requestParamsStr加&sk={AccessSecret}(AccessSecret可在商户后台->基本信息->开发配置中获取), 最终得到待签名字符串signStr,例如:accessId=AK796512861378&amount=10048&email=example@example.xyz&merchantOrderNo=25a1fce2-b503-4cdb-a382-3fe4bd9afdc5&name=example&phone=7277528013&signNonce=0.97vuhubl8ho×tamp=1745574753758&sk=nUuoLks4PmuqXdDJe2Wwd0mLzIvXVMjZ -
对
signStr进行MD5签名得到十六进制签名值sign(小写字符串),如:40a3c6c24a13ccfcbd3c5f51e23052d1 -
将签名
sign放入请求参数集合中,并发往服务器,例如:{ "accessId": "AK796512861378", "amount": "10048", "calbackUrl": "", "email": "example@example.xyz", "merchantOrderNo": "25a1fce2-b503-4cdb-a382-3fe4bd9afdc5", "name": "example", "phone": "7277528013", "signNonce": "0.97vuhubl8ho", "timestamp": "1745574753758", "sign": "40a3c6c24a13ccfcbd3c5f51e23052d1" }