Thiết bị TingeeBox
Quản lý thiết bị TingeeBox: đọc mã bảo mật, hiển thị QR, quản lý liên kết thiết bị-cửa hàng.
Đọc mã bảo mật
API: POST /v1/device/read-security-code
- Node.js
- Java
- C#
- PHP
const result = await client.device.readSecurityCode({ uuid: 'DEVICE_UUID' });
var req = new OpenApiReadSecurityCodeDto();
req.setUuid("DEVICE_UUID");
var result = client.device.readSecurityCode(req);
var result = await client.Device.ReadSecurityCodeAsync(new OpenApiReadSecurityCodeDto { Uuid = "DEVICE_UUID" });
$result = $client->device->readSecurityCode(uuid: 'DEVICE_UUID');
Tham số đầu vào
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
uuid | string | ✓ | UUID thiết bị |
Response
Trả về response chuẩn { code, message }, không có data.
Đọc số tiền
API: POST /v1/device/read-amount
- Node.js
- Java
- C#
- PHP
const result = await client.device.readAmount({
uuid: 'DEVICE_UUID',
transactionId: 'TXN_001',
amount: 500000,
bankBin: '970418',
});
var req = new BIDVOpenApiReadAmountDto();
req.setUuid("DEVICE_UUID");
req.setTransactionId("TXN_001");
req.setAmount(500000);
req.setBankBin("970418");
var result = client.device.readAmount(req);
var result = await client.Device.ReadAmountAsync(new BIDVOpenApiReadAmountDto
{
Uuid = "DEVICE_UUID",
TransactionId = "TXN_001",
Amount = 500000,
BankBin = "970418",
});
$result = $client->device->readAmount(
uuid: 'DEVICE_UUID',
transactionId: 'TXN_001',
amount: 500000,
bankBin: '970418',
);
Tham số đầu vào
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
uuid | string | ✓ | UUID thiết bị |
transactionId | string | ✓ | Mã giao dịch |
amount | number | ✓ | Số tiền |
bankBin | string | ✓ | Mã BIN ngân hàng. Dùng BankBinEnum |
firstDisplayText | string | ✕ | Dòng hiển thị thứ 1 |
secondDisplayText | string | ✕ | Dòng hiển thị thứ 2 |
thirdDisplayText | string | ✕ | Dòng hiển thị thứ 3 |
playSound | boolean | ✕ | Bật/tắt âm thanh |
Response
Trả về response chuẩn { code, message }, không có data.
Hiển thị mã QR
API: POST /v1/device/show-qr-code
- Node.js
- Java
- C#
- PHP
const result = await client.device.showQrCode({
uuid: 'DEVICE_UUID',
vaAccountNumber: 'V1T199988811',
amount: 500000,
qrCode: 'QR_STRING...',
bankBin: '970418',
});
var req = new OpenApiShowQRCodeDto();
req.setUuid("DEVICE_UUID");
req.setVaAccountNumber("V1T199988811");
req.setAmount(500000);
req.setQrCode("QR_STRING...");
req.setBankBin("970418");
var result = client.device.showQrCode(req);
var result = await client.Device.ShowQrCodeAsync(new OpenApiShowQRCodeDto
{
Uuid = "DEVICE_UUID",
VaAccountNumber = "V1T199988811",
Amount = 500000,
QrCode = "QR_STRING...",
BankBin = "970418",
});
$result = $client->device->showQrCode(
uuid: 'DEVICE_UUID',
vaAccountNumber: 'V1T199988811',
amount: 500000,
qrCode: 'QR_STRING...',
bankBin: '970418',
);
Tham số đầu vào
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
uuid | string | ✓ | UUID thiết bị |
amount | number | ✓ | Số tiền hiển thị |
qrCode | string | ✓ | Chuỗi mã QR |
vaAccountNumber | string | ✕ | Số tài khoản ảo |
bankBin | string | ✕ | Mã BIN ngân hàng. Dùng BankBinEnum |
bankName | string | ✕ | Tên ngân hàng. Dùng BankNameEnum |
deviceType | string | ✕ | Loại thiết bị |
firstText | string | ✕ | Dòng hiển thị thứ 1 |
secondText | string | ✕ | Dòng hiển thị thứ 2 |
thirdText | string | ✕ | Dòng hiển thị thứ 3 |
showTime | number | ✕ | Thời gian hiển thị (giây) |
isStaticQr | boolean | ✕ | QR tĩnh hay không |
playSound | boolean | ✕ | Bật/tắt âm thanh |
merchantId | number | ✕ | ID Merchant |
Response
Trả về response chuẩn { code, message }, không có data.
Tạo và hiển thị QR động
API: POST /v1/device/generate-and-show-dynamic-qr-code
- Node.js
- Java
- C#
- PHP
const result = await client.device.generateAndShowDynamicQrCode({
uuid: 'DEVICE_UUID',
vaAccountNumber: 'V1T199988811',
qrCodeType: 'dynamic-one-time-payment',
amount: 500000,
expireInMinute: 30,
});
var req = new OpenApiGenerateAndShowDynamicQrCodeDto();
req.setUuid("DEVICE_UUID");
req.setVaAccountNumber("V1T199988811");
req.setQrCodeType("dynamic-one-time-payment");
req.setAmount(500000);
req.setExpireInMinute(30);
var result = client.device.generateAndShowDynamicQrCode(req);
var result = await client.Device.GenerateAndShowDynamicQrCodeAsync(
new OpenApiGenerateAndShowDynamicQrCodeDto
{
Uuid = "DEVICE_UUID",
VaAccountNumber = "V1T199988811",
QrCodeType = "dynamic-one-time-payment",
Amount = 500000,
ExpireInMinute = 30,
});
$result = $client->device->generateAndShowDynamicQrCode(
uuid: 'DEVICE_UUID',
vaAccountNumber: 'V1T199988811',
qrCodeType: 'dynamic-one-time-payment',
amount: 500000,
expireInMinute: 30,
);
Tham số đầu vào
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
uuid | string | ✓ | UUID thiết bị |
vaAccountNumber | string | ✓ | Số tài khoản ảo |
qrCodeType | string | ✓ | dynamic-one-time-payment hoặc dynamic-recurring-payment |
amount | number | ✕ | Số tiền |
bankBin | string | ✕ | Mã BIN ngân hàng. Dùng BankBinEnum |
purpose | string | ✕ | Nội dung thanh toán |
expireInMinute | number | ✕ | Hết hạn sau N phút |
extraInfo | string | ✕ | Thông tin bổ sung |
deviceType | string | ✕ | Loại thiết bị |
firstText | string | ✕ | Dòng hiển thị thứ 1 |
secondText | string | ✕ | Dòng hiển thị thứ 2 |
thirdText | string | ✕ | Dòng hiển thị thứ 3 |
showTime | number | ✕ | Thời gian hiển thị (giây) |
playSound | boolean | ✕ | Bật/tắt âm thanh |
readAmountAfterPay | boolean | ✕ | Đọc số tiền sau thanh toán |
merchantId | number | ✕ | ID Merchant |
Thêm thiết bị vào cửa hàng
API: POST /v1/device/add-device-to-shop
- Node.js
- Java
- C#
- PHP
const result = await client.device.addDeviceToShop({
uuid: 'DEVICE_UUID',
securityCode: '123456',
appType: 'tingee-web',
shopIds: [1001],
});
var req = new OpenApiAddDeviceToShop();
req.setUuid("DEVICE_UUID");
req.setSecurityCode("123456");
req.setAppType("tingee-web");
req.setShopIds(List.of(1001));
var result = client.device.addDeviceToShop(req);
var result = await client.Device.AddDeviceToShopAsync(new OpenApiAddDeviceToShop
{
Uuid = "DEVICE_UUID",
SecurityCode = "123456",
AppType = "tingee-web",
ShopIds = new[] { 1001 },
});
$result = $client->device->addDeviceToShop(
uuid: 'DEVICE_UUID',
securityCode: '123456',
appType: 'tingee-web',
shopIds: [1001],
);
Tham số đầu vào
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
uuid | string | ✓ | UUID thiết bị |
securityCode | string | ✓ | Mã bảo mật thiết bị |
appType | string | ✓ | Loại ứng dụng (ví dụ: tingee-web) |
shopIds | number[] | ✕ | Danh sách ID cửa hàng |
vaAccountNumbers | string[] | ✕ | Danh sách số VA liên kết |
merchantId | number | ✕ | ID Merchant |
masterMerchantId | number | ✕ | ID Master Merchant |
Response
{
"code": "00",
"message": "Success",
"data": [
{ "type": "tingee-box-3pro", "uuid": "DEVICE_UUID" }
]
}
| Trường | Kiểu | Mô tả |
|---|---|---|
data[].type | string | Loại thiết bị |
data[].uuid | string | UUID thiết bị |
Danh sách thiết bị
API: POST /v1/device/get-paging
- Node.js
- Java
- C#
- PHP
const result = await client.device.getPaging({
skipCount: 0,
maxResultCount: 10,
merchantId: 12345,
});
var req = new OpenApiGetPagingDeviceInputDto();
req.setSkipCount(0);
req.setMaxResultCount(10);
req.setMerchantId(12345);
var result = client.device.getPaging(req);
var result = await client.Device.GetPagingAsync(new OpenApiGetPagingDeviceInputDto
{
SkipCount = 0,
MaxResultCount = 10,
MerchantId = 12345,
});
$result = $client->device->getPaging(
skipCount: 0,
maxResultCount: 10,
merchantId: 12345,
);
Tham số đầu vào
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
skipCount | number | ✓ | Số bản ghi bỏ qua |
maxResultCount | number | ✓ | Số bản ghi tối đa |
merchantId | number | ✓ | ID Merchant |
filter | string | ✕ | Lọc theo từ khóa |
sorting | string | ✕ | Sắp xếp |
type | string | ✕ | Lọc theo loại thiết bị |
Response
Trả về PagedResultDto<DeviceDto> với totalCount và mảng items.
Thiết bị liên kết Shop/VA
API: POST /v1/device/get-devices-link-to-shop-or-va
- Node.js
- Java
- C#
- PHP
const result = await client.device.getDevicesLinkToShopOrVa({
merchantId: 12345,
shopId: 1001,
vaAccountNumber: 'V1T199988811',
});
var req = new OpenApiGetDevicesLinkToShopOrVA();
req.setMerchantId(12345);
req.setShopId(1001);
req.setVaAccountNumber("V1T199988811");
var result = client.device.getDevicesLinkToShopOrVa(req);
var result = await client.Device.GetDevicesLinkToShopOrVaAsync(
new OpenApiGetDevicesLinkToShopOrVA
{
MerchantId = 12345,
ShopId = 1001,
VaAccountNumber = "V1T199988811",
});
$result = $client->device->getDevicesLinkToShopOrVa(
merchantId: 12345,
shopId: 1001,
vaAccountNumber: 'V1T199988811',
);
Tham số đầu vào
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
merchantId | number | ✓ | ID Merchant |
shopId | number | ✓ | ID cửa hàng |
vaAccountNumber | string | ✓ | Số tài khoản ảo |
Response
{
"code": "00",
"message": "Success",
"data": [
{ "type": "tingee-box-3pro", "uuid": "DEVICE_UUID" }
]
}
Các method khác
| Method | Mô tả |
|---|---|
showDynamicQrCode(body) | Hiển thị QR động trên thiết bị (tham số giống showQrCode) |
showStaticQrCode(body) | Hiển thị QR tĩnh trên thiết bị (tham số giống showQrCode) |
readPartnerSecurityCode(body) | Đọc mã bảo mật đối tác (uuid, securityCode, merchantId?) |
readAmountLinkToMerchant(body) | Đọc số tiền liên kết Merchant (tham số giống readAmount + merchantId) |
updateShopDeviceLinkStatus(body) | Cập nhật trạng thái liên kết thiết bị-cửa hàng |
reset(query) | Reset thiết bị (uuid) — API docs |