跳到主要内容

签名算法

备注
  • 签名算法用于使用私钥对您的支付 API 请求进行签名,以获得额外的安全性。
信息
  • 数据对象需要按字母顺序排序, 嵌套对象也需要按字母顺序排序。

第 1 步:准备请求参数

方法 : POST

备注
  • 请参阅您正在调用的 API 端点,下面的请求参数只是一个 例子

创建付款 URL 示例

参数类型必填说明示例
orderObject订单信息,对象字段为
[id, title, amount, currencyType, additionalData]
customerObject客户信息,对象字段为
[name, phone, email]
methodString列表 充值/付款 - Financial Process Exchange (FPX) , 如果传入接口是有提供,用户将被直接重定向到特定的第 3 方支付页面。 如果没有,用户将被重定向到付款页面以选择付款方式

Order [Object]

参数类型必填说明示例
titleString标题, max: 32"Deposit"
additionalDataString说明
amountString数额。 100 = RM 100.00100
currencyTypeString币种 (目前只支持 MYR , USDT)"MYR"
idString订单ID

Customer [Object]

参数类型必填说明示例
nameString名字"Long Wan"
emailString邮箱""
phoneString电话号码""

Example Request

{
"order": {
"id": "A20221111",
"title": "Payment",
"amount": "88.50",
"currencyType": "MYR",
"additionalData": ""
},
"customer": {
"name": "Long Wan",
"phone": "0123456789",
"email": "[email protected]"
},
"method": "CIMB_MY"
}
信息
  • 对上面的json键按字母顺序排序并使其紧凑

第 2 步:使用 Base64 格式对数据进行编码

备注

ewogICAgIm9yZGVyIjogewogICAgCSJ0aXRsZSI6ICJoZWxsbyIsCiAgICAJImRldGFpbCI6ICIiLAogICAgCSJhZGRpdGlvbmFsRGF0YSI6ICJ3b3JsZCIsCgkgICAgImFtb3VudCI6IDEwLAoJICAgICJjdXJyZW5jeVR5cGUiOiAiTVlSIiwKCSAgICAiaWQiOiAgIjcyMTEiCiAgICB9LAogICAgImN1c3RvbWVyIjogewogICAgInVzZXJJZCI6ICIiLAogICAgImVtYWlsIjogIiIKfSwKICAgICJtZXRob2QiOltdLAogICAgInR5cGUiOiAiV0VCX1BBWU1FTlQiLAogICAgInN0b3JlSWQiOiAiMTYwODEyMzAzNTU2NDUzODEyMSIsCiAgICAicmVkaXJlY3RVcmwiOiAiaHR0cHM6Ly9yZXZlbnVlbW9uc3Rlci5teSIsCiAgICAibm90aWZ5VXJsIjogImh0dHBzOi8vZGV2LXJtLWFwaS5hcC5uZ3Jvay5pbyIsCiAgICAibGF5b3V0VmVyc2lvbiI6InYzIgp9

第 3 步:构造纯文本参数

信息
  • 如果正文为空,则可以跳过 data 参数
参数类型必填说明示例
dataString步骤 2 中的 Base64 数据主体.请参阅步骤 2
methodString使用的 HTTP 调用方法"post"
nonceStrString随机字符串"VYNknZohxwicZMaWbNdBKUrnrxDtaRhN"
requestURLString您调用的 API URL 必须与 URL路由 完全相同。gateway/v1/createPayment
signTypeString签名算法类型,首选 SHA-256"sha256"
timestampStringUNIX格式的 请求的时间戳"1527407052"

Example

备注

data=ewogICAgIm9yZGVyIjogewogICAgCSJ0aXRsZSI6ICJoZWxsbyIsCiAgICAJImRldGFpbCI6ICIiLAogICAgCSJhZGRpdGlvbmFsRGF0YSI6ICJ3b3JsZCIsCgkgICAgImFtb3VudCI6IDEwLAoJICAgICJjdXJyZW5jeVR5cGUiOiAiTVlSIiwKCSAgICAiaWQiOiAgIjcyMTEiCiAgICB9LAogICAgImN1c3RvbWVyIjogewogICAgInVzZXJJZCI6ICIiLAogICAgImVtYWlsIjogIiIKfSwKICAgICJtZXRob2QiOltdLAogICAgInR5cGUiOiAiV0VCX1BBWU1FTlQiLAogICAgInN0b3JlSWQiOiAiMTYwODEyMzAzNTU2NDUzODEyMSIsCiAgICAicmVkaXJlY3RVcmwiOiAiaHR0cHM6Ly9yZXZlbnVlbW9uc3Rlci5teSIsCiAgICAibm90aWZ5VXJsIjogImh0dHBzOi8vZGV2LXJtLWFwaS5hcC5uZ3Jvay5pbyIsCiAgICAibGF5b3V0VmVyc2lvbiI6InYzIgp9&method=post&nonceStr=VYNknZohxwicZMaWbNdBKUrnrxDtaRhN&requestUrl=gateway/v1/createPayment&signType=sha256&timestamp=1527407052

第 4 步:使用 CLIENT PRIVATE KEY 签名

信息
  • 使用带有 rsa private keysha256 签署此内容,并确保 public key 已上传到 DIRECTPAY 商家平台
类型必填说明示例
String使用 PRIVATE_KEY 对步骤 3 中的请求数据进行签名示例显示如下
备注

签名例子

sha256 IrBg6t73VsH7ieEnQDB4CXHFjMWUkp8Dtddpxqw+4Gvz6Tag7Dx6nrfAt2ofYK8xZN9aBCvAKAfmAOGWIXnsTXfhFBnMA2kadiga7ufUJ81ozyhllbiliRM2ugw1OcqSTLRHWBPhrVwhHBxgDiG9wbuI3FKURrz+CufYYakFoCw=

第 5 步:放入请求Header头部

备注

将此签名 放入 X-Signature 下的 header 中,构造请求并调用接下来 API 接口