Skip to main content
POST
/
v1
/
merchant
/
open
/
api
/
registration
商户注册
curl --request POST \
  --url https://mpgwpre.payallglobal.com/mp-gateway/v1/merchant/open/api/registration \
  --header 'Content-Type: application/json' \
  --header 'signature: <api-key>' \
  --data '
{
  "charset": "UTF-8",
  "version": "2.0.0",
  "transType": "PAY",
  "accessType": "s2s",
  "signType": "RSA",
  "memberId": "<string>",
  "merchantId": "<string>",
  "address": "<string>",
  "agreementFile": "<string>",
  "business": {
    "appDownload": "<string>",
    "businessType": "<string>",
    "mcc": "<string>",
    "miniProgram": "<string>",
    "officeAccount": "<string>",
    "storeAddress": "<string>",
    "storePhotos": "<string>",
    "website": "<string>"
  },
  "businessAddress": "<string>",
  "businessPic": "<string>",
  "certNo": "<string>",
  "contact": {
    "email": 123,
    "name": "<string>",
    "phone": 123
  },
  "countryCode": 123,
  "director": {
    "name": "<string>",
    "number": 123,
    "type": "<string>"
  },
  "merchantType": "<string>",
  "phoneNo": "<string>",
  "principal": {
    "name": "<string>",
    "number": 123,
    "type": "<string>"
  },
  "registrationDate": "<string>",
  "registrationPic": "<string>",
  "shareholder": [
    {
      "name": "<string>",
      "number": 123,
      "type": "<string>"
    }
  ],
  "subMcc": "<string>",
  "subMerchantId": 123,
  "subMerchantName": "<string>",
  "subMerchantShort": "<string>"
}
'
{
  "isSuccess": true,
  "errCode": "<string>",
  "errMessage": "<string>",
  "status": "<string>",
  "traceId": "<string>",
  "data": {
    "subMerchantId": "<string>"
  }
}

Authorizations

signature
string
header
required

加签

加签是开放平台和商户对于交互消息完整性的校验。加签行为主要发生两个部分:

  1. 商户服务器端针对向PayAllGlobal开放平台发送的请求报文进行加签;
  2. PayAllGlobal开放平台针对通知商户的异步消息进行加签。 PayAllGlobal平台要求使用 RSA 私钥进行加签, 使用 RSA 公钥进行验签。 因此,在以上两部分描述的交互中, 存在商户公私钥、PayAllGlobal 公私钥,开发者需要使用商户私钥,对第一部分报文进行加签,使用 PayAllGlobal 公钥对第二部分消息进行验签。

加签规则如下:

  1. 使用 商户私钥对待 request.body 进行签名(SHA256WithRSA 计算原始数据的SHA-256哈希值。 使用私钥对哈希值进行签名,即使用私钥对哈希值进行RSA加密。此时得到的加密结果就是数字签名。);
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
// 计算 SHA256withRSA 签名时,需要以 utf-8 的编码转换 byte 流,否则可能导致含中文参数的签名计算不正确
signature.update(request.body);
byte[] signedHash = signature.sign();
  1. 将加签内容进行 Base64 编码;
String signature = Base64.getEncoder().encodeToString(signedHash);
  1. 将编码后的内容放在请求头部 signature 参数中。 注意,加签是对 request.body 进行签名,当查询等 request.body 为空时,则无需加签。

Body

application/json
charset
string
default:UTF-8
required

交互数据的编码【utf-8】

Example:

"UTF-8"

version
string
required

接口版本,当前版本为【2.0.0】,目前只能传2.0.0,不能不传

Example:

"2.0.0"

transType
enum<string>
default:PAY
required

交易类型

Available options:
PAY,
CREDIT_CARD,
3D_PREAUTH_VOIDS,
3D_PREAUTH_COMPLETION,
REFUND,
VOIDS,
QUERY,
TRANSFER,
DOWNLOAD,
REGISTRATION,
FILEUPLOAD,
INQUIRYREGISTRATIONSTATUS,
AUTHORIZE,
CASHIER_PAY
accessType
string
default:s2s
required

接口访问类型

Example:

"s2s"

signType
string
required

报文签名类型

Example:

"RSA"

memberId
string
required

机构号

Example:

"2023010558663764"

merchantId
string
required

商户号

Example:

"2023010558663764"

address
string
agreementFile
string
business
object
businessAddress
string
businessPic
string
certNo
string
contact
object
countryCode
integer
director
object
merchantType
string
phoneNo
string
principal
object
registrationDate
string
registrationPic
string
shareholder
object[]
subMcc
string
subMerchantId
integer
subMerchantName
string
subMerchantShort
string

Response

200 - application/json

OK

isSuccess
boolean
required

是否成功

errCode
string
required

响应状态码,errCode为00000000表示响应成功,其他状态码表示响应失败。具体系统错误码可以参考系统错误码。

Example:

"00000003"

errMessage
string
required

错误消息

Example:

"处理中"

status
string
required

订单状态(见补充说明)

Examples:

"PENDING"

"SUCCESS"

"FAIL"

traceId
string
required

请求消息唯一标识。traceId为本次调用产生的流水号,接口调用异常,可以提供此流水号用于排查问题。

Example:

"33fae7b7aed1233f"

data
object