跳到主要内容

支付参数

Method POST

URL
https://xxx.finexusgroup.com/api/submit

配置字段 paymentMethod,用于卡支付和二维码支付选项。

字段名是否必需类型描述
SignatureString包含消息的签名值。消息的发起者负责生成签名,而消息的接收者必须验证签名,以确保消息的完整性、真实性和不可否认性。

请参考 附录 1
sourceSystemString消息发起者的系统 ID。

Body

请参考 嵌入代码对内容进行加密,并在正文前添加消息类型指示符0011

字段名是否必需类型长度描述示例
msgVerString8版本数字"1.0"
billerTypeString2付款类型"PS" - POS 系统
callerDeviceTypeString2呼叫设备类型."02" - 安卓 EDC/卡支付终端
callerDeviceVerString8呼叫设备的应用版本数字。"1"
sequenceNoString16在日历日内系统中唯一的运行消息序列数字,每天从 1 重新开始。"202409288868"
sellerIdString6由 FINEXUS 提供,用于识别卖方或纳税人(商户)以进行电子发票处理。"A123"
midString15商户 ID"100000"
isPaymentReqString1付款请求指示"Y" - 在 KPOS 触发付款。
"N" - 可选,付款处理将被启动。
payment条件的Object支付对象.
isInvoiceReqString1发票请求指示"Y" - 此请求将向 LHDN 发送发票数据。
"N" - 此请求将不向 LHDN 发送发票数据。
invoice条件的Object用于向 LHDN 提交的发票对象,以用于电子发票。如果 isInvoiceReq 为“Y”,则为必需。

Object: payment

字段名是否必需类型长度描述示例
mrnString40由 POS 系统分配的唯一参考数字,用于识别原始支付交易。"8e8c6e61-f9e4-40f0-a4a5-9e561579c901"
requiredPaymentString1指示该请求是否需要付款。"Y" - 此请求将在 KPOS 触发付款。
"N" - 不会启动付款处理。
paymentMethodNumber2首选支付方式将在 KPOS 触发。"00" - KPOS 将显示所有可用的支付方式,客户可以选择他们的首选方式进行支付。
"01" - 卡支付
"04" - Duitnow QR 支付(商户呈现)
"08" - Alipay+ QR 支付(商户呈现)
currencyNumber3此交易的 ISO 4217 数字货币代码。"458"
amountNumber18金额,交易。支持货币的购买交易金额。"1000"
description可选String256订单描述"Food order"
paymentNotiUrl条件的String256主要付款通知 URL。用于接收付款结果通知的 URL。出于安全原因,该 URL 必须为 HTTPS URL。仅适用于 HTTPS POST 集成。"https://xxx/xxx/xxx.paymentNotiUrl"
paymentNotiUrl2条件的String256次要付款通知 URL。"https://xxx/xxx/xxx.paymentNotiUrl2"
paymentTimeString25付款时间。该值遵循 ISO 8601 标准格式。"2024-06-30T12:12:12+0800"
email条件的String64KPOS 的电子邮件登录。如果通过 HTTPS POST 进行付款请求,则为必需。"customer123@gmail.com"
deviceSN条件的String32设备序列号。如果通过 HTTPS POST 进行付款请求,则为必需。"PPXXX72209005XXX"
printPaymentReceiptString1"Y" - 如果付款获得批准,KPOS 将显示电子收据并打印付款收据。
"N" - 如果付款获得批准,KPOS 将显示电子收据,但不打印付款收据。
"Y"
nonBlocking可选String1"Y" - KPOS 将在收到 PSP 请求后立即在提交响应中返回确认。
"N" - KPOS 将完全处理请求并将最终结果返回给 PSP。

默认值为 "Y"。
"Y"

示例请求和响应主体

加密之前
{
"msgVer": "1.0",
"billerType": "PS",
"callerDeviceType": "02",
"callerDeviceVer": "1",
"sequenceNo": "2022091511262185",
"sellerId": "A123",
"mid": "000010000012XXX",
"isPaymentReq": "Y",
"payment": {
"mrn": "2021061414062021078",
"requiredPayment": "Y",
"paymentMethod": "01",
"currency": "458",
"amount": "1000",
"description": "test",
"paymentTime": "2024-09-23T10:30:29.249",
"email": "customer123@gmail.com",
"deviceSN": "PPXXX72209005XXX",
"printPaymentReceipt": "N",
"nonBlocking": "N"
},
"isInvoiceReq": "N"
}
加密之后并添加消息类型指示符
0011eyJlcGsiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsImtpZCI6ImU4NmQ0Y2ZiLTFkNzMtNDJkNi05MGVlLWRlNWJlNjcwMjVlOSIsIngiOiI0UmxIeDAzX3ZlTURWaGFaTl91TVppZ2YzV1dPWGlveG52Zy1rRXhyMzFrIiwieSI6ImcyU1VqNkJnVHdYakxWYWlTRnVobGtSWklrMndaWlNaMWJEWG1DSTZSVXcifSwia2lkIjoiMTIzIiwiZW5jIjoiQTI1NkNCQy1IUzUxMiIsImFsZyI6ImRpciJ9..UIzHIjrFX8fPX91SEUzZpA.9hmtgLHx_UZjYTwduAtdruZB60QPRPjvczVeJwSI7tomXmEU720zuokvMdf9VxQqHOh2PHvtTtqW8OZQuIqYyDmss06ii-fy73a897AJv2KXPARY6DduoiLSJwDCJKhBiJlnZkAMyRZdB5xGzJwXL21QaXbO86EF6_d9qzrOhQvrNlfkTOBQYnv5Mhnnetda0_zm59HRMW2mg-rEOGj1W0Q4U0I8ZZrXQSxO3MnalxuzWQ4oTU2uHZrFnsyL93PeKiG_RmIszQGXqG0bN8WsoJfL0BTd20rnxldLQcSZYNdxGJw0EBGwlSp7DTpcmP1kzd1v2PzLGISZiPa9zadcVuLaODBZQ5GdHoPgIi76pTRwDJrv1CuD8ugfuuu_L5DxFIErnqs5cTONqxhCQ23ZeCSbnuDJDJju9yyr2wYoFFKQQciZmPddPgi2phew31DRjju4y4Ab6H7Vv01gqk6h2b9clR7v54wZSvR0CVROLZj79nKM1eLDhEo8JEv6T5APb2EHMTaU-sIlT-XqENbwV-A5HSEuEdvU7K3fsgioU5qJWwk9SS1WWmyqHnvCK1Rl5azJcKbfyN07a7znZD66IAoSUoCHjsqmFC4bd6ckdLA.Q3Ys35PhzHsnNnlJQ3rzwR-RsfEmYeDxXDsw9h97Azo

示例消息

POST 请求
curl -X POST "https://xxx.finexusgroup.com/fnx-fintech/sandbox/mqpos-host/api/submit" \
-H "Accept: application/json" \
-H "Content-Type: text/plain" \
-H "Signature: ..." \
-H "sourceSystem: ..." \
-d '0011eyJlcGsiOnsia3R5IjoiRUMiLCJ...'