Check Status
Pre-request Script Example
var CryptoJS = require("crypto-js");
var moment = require("moment");
var navigator = {}; //fake a navigator object for the lib
var window = {}; //fake a window object for the lib
eval(postman.getGlobalVariable("jsrsasign-js")); //import javascript jsrsasign
const secretKey = pm.environment.get('SECRET_KEY');
const path = "/snap/v1.1/qr/qr-mpm-status"
signRequest(pm.request, path)
pm.globals.set("trx_id", _.random(1,99999999));
function signRequest(request, path) {
const date = new Date().toISOString();
const dateIso = moment(date).format('YYYY-MM-DDTHH:mm:ssZ')
pm.globals.set('X-TIMESTAMP', dateIso);
console.log('date: ' + dateIso);
const method = request.method;
console.log('method: ' + method);
console.log('path: ' + path);
const body = request.body.raw;
var jsonObject = JSON.parse(body);
var minifyJsonObject = JSON.stringify(jsonObject, null, 0)
console.log('minifyJsonObject: ' + minifyJsonObject);
const bodyToHash = CryptoJS.SHA256(minifyJsonObject);
// const bodySha256 = CryptoJS.enc.Base64.stringify(CryptoJS.SHA256(minifyJsonObject)).toLowerCase();
const bodySha256 = bodyToHash.toString(CryptoJS.enc.Hex);
const accessToken = pm.globals.get('ACCESS_TOKEN');
console.log('access token :' + accessToken);
console.log('bodySha256: ' + bodySha256);
const data = `${method}:${path}:${accessToken}:${bodySha256}:${dateIso}`
console.log('stringtosign: ' + data);
const signatureHash = createSignature(data, secretKey)
console.log('signature :' + signatureHash);
pm.globals.set("X-SIGNATURE", signatureHash);
}
function createSignature(rawData, secretKey){
let signatureUtf8 = CryptoJS.enc.Utf8.parse(rawData);
var secretUtf8 = CryptoJS.enc.Utf8.parse(secretKey);
console.log("secretKey: " + secretKey);
var signatureBytes = CryptoJS.HmacSHA512(signatureUtf8,secretUtf8);
var requestSignatureBase64String = CryptoJS.enc.Base64.stringify(signatureBytes);
return requestSignatureBase64String;
}
Check Status
Numeric String. Reference number that should be unique in the same day (Request Id)
41807553358950093184162180797837
Client Id for merchant that generated by DOKU
BRN-0240-1657686175289
Symmetric Signature with Get Token (Default)HMAC_SHA512 (clientSecret, stringToSign) dengan formula stringToSign = HTTPMethod +”:“+ EndpointUrl +":"+ AccessToken +":“+ Lowercase(HexEncode(SHA-256(minify(RequestBody))))+ ":“ + TimeStamp
ieNOENDdN4MnectGytx5UvmOfASZ2oGWMCJ8gVqkw3tB98ofgY9cbxSeY4IYoYeoKs+0QP4h8BTBhemlfeXp1w==
Client's current local time with format YYYY-MM-DDTHH:mm:ssZD
2020-12-21T14:56:11+07:00
refers to a unique identifier for the channel or method used to initiate a payment transaction
H2H
Original transaction identifier on service consumer system. Filled with partnerReferenceNo from remit/transfer API
hsjkans284b2he54
Original transaction identifier on service provider system. Can be filled with referenceNo or sessionId from remit/transfer API.
hsjkans284b2he54
Original transaction identifier on service provider system. Can be filled with X-EXTERNAL_ID from remit/transfer API.
892834eWg
Transaction type indicator (service code of the original transaction request).
43
check status processed
Bad Request
POST /snap/v1.1/qr/qr-mpm-status HTTP/1.1
Host: api-sandbox.doku.com
X-EXTERNAL-ID: text
X-PARTNER-ID: text
X-SIGNATURE: text
X-TIMESTAMP: text
CHANNEL-ID: text
Content-Type: application/json
Accept: */*
Content-Length: 142
{
"originalPartnerReferenceNo": "hsjkans284b2he54",
"originalReferenceNo": "hsjkans284b2he54",
"originalExternalId": "892834eWg",
"serviceCode": "43"
}
{
"responseCode": 2005300,
"responseMessage": "Successful",
"originalReferenceNo": "DK01123220",
"originalPartnerReferenceNo": "2020102900000000000001",
"serviceCode": 43,
"latestTransactionStatus": "00",
"amount": {
"value": "65000.00",
"currency": "IDR"
},
"transactionDate": "2024-09-17T14:41:52. 022+07:00",
"originalResponseCode": 0,
"originalResponseMessage": "Transfer Approve",
"transactionStatusDesc": "Transaction is successfully processed",
"sessionId": "I0438729855304540",
"additionalInfo": {
"cashInTime": "2024-09-17 13:56:57",
"remark": "Remark test",
"beneficiaryAmount": "200000.00"
}
}
Last updated
Was this helpful?