Skip to main content

Deeplink Integration

Deeplink Integration enables businesses to manage their orders through a single mobile application and process transactions using various payment methods, thereby enhancing the customer experience.

note

This integration is compatible with any mobile device or terminal, as long as you are using our application.

Deeplink

caution

This is applicable to the Merchant App on terminals with versions greater than 2.10.0.

Demo: applink-demo

Application Receiver

Setup 1: AndroidManifest

<activity android:name=".ReceiverActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>

Setup 2: ReceiverActivity

class ReceiverActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//....

try {
val keySet: Set<String> = intent?.extras!!.keySet()
keySet.forEach {
Log.v("Receiver", "key = $it || value = ${intent.extras!![it]}")
}
} catch (e: Exception) {
e.printStackTrace()
}

val result = intent?.getStringExtra("result")
val transactionType = intent?.getIntExtra("transactionType")
//Do your code here

}
}
val i = Intent("REVENUE_MONSTER_PAYMENT").apply {
putExtra("packageName", packageName)
putExtra("receiverName", <<YOUR_ACTIVITY>>::class.java.name)
putExtra("transactionType", 1)
putExtra("orderId", System.currentTimeMillis().toString())
putExtra("orderTitle", "Intent Demo")
putExtra("amount", 10)
putExtra("printReceipt", false)
}
startActivity(i)

Response Parameters

val jsonString = intent?.getStringExtra("result")
ParameterTypeValidationDescription
itemJSONTransaction ObjectTransaction response
codeStringENUM("SUCCESS")Determine request have success
error.codeStringError code
error.messageStringError message
val i = Intent("REVENUE_MONSTER_PAYMENT").apply {
putExtra("packageName", packageName)
putExtra("receiverName", <<YOUR_ACTIVITY>>::class.java.name)
putExtra("transactionType", 2)
putExtra("orderId", System.currentTimeMillis().toString())
putExtra("orderTitle", "Intent Demo")
putExtra("amount", 100)
putExtra("printReceipt", false)
}
startActivity(i)

Note: For terminal MF919 we had no control for the receipt printing.

Response Parameters

val jsonString = intent?.getStringExtra("result")
ParameterTypeValidationDescription
itemJSONTransaction ObjectTransaction response
codeStringENUM("SUCCESS")Determine request have success
error.codeStringError code
error.messageStringError message
val i = Intent("REVENUE_MONSTER_PAYMENT").apply {
putExtra("packageName", packageName)
putExtra("receiverName", <<YOUR_ACTIVITY>>::class.java.name)
putExtra("transactionType", 3)
putExtra("transactionId", "240620034957010325054813")
putExtra("reason", "Wrong Order")
putExtra("email", "test@abc.my")
putExtra("pin", "456789")
putExtra("printReceipt", false)
}
startActivity(i)

Response Parameters

val jsonString = intent?.getStringExtra("result")
ParameterTypeValidationDescription
itemJSONTransaction ObjectTransaction response
codeStringENUM("SUCCESS")Determine request have success
error.codeStringError code
error.messageStringError message
val i = Intent("REVENUE_MONSTER_PAYMENT").apply {
putExtra("packageName", packageName)
putExtra("receiverName", <<YOUR_ACTIVITY>>::class.java.name)
putExtra("transactionType", 4)
putExtra("print", false)
}
startActivity(i)

Response Parameters

val jsonString = intent?.getStringExtra("result")
ParameterTypeValidationDescription
totalSalesAmountUint64Total sales amount
totalSalesCountUint64Total sales count
totalRefundedAmountUint64Total refunded amount
totalRefundedCountUint64Total refunded count
wallet[*].nameStringWallet name
wallet[*].methodStringWallet method
wallet[*].regionStringWallet region
wallet[*].sales.countUint64Wallet sales count
wallet[*].sales.amountUint64Wallet sales amount
wallet[*].refunded.countUint64Wallet refunded count
wallet[*].refunded.amountUint64Wallet refunded amount
range[*]StringRFC3339Range of settlement dates
val i = Intent("REVENUE_MONSTER_PAYMENT").apply {
putExtra("packageName", packageName)
putExtra("receiverName", <<YOUR_ACTIVITY>>::class.java.name)
putExtra("transactionType", 5)
}
startActivity(i)

Response Parameters

val jsonString = intent?.getStringExtra("result")
ParameterTypeValidationDescription
codeStringENUM("SUCCESS")Determine request have success
error.codeStringError code
error.messageStringError message
error.debugStringDebug message ( sandbox only )
summary.batchNoStringSequence no. of the terminal settlement
summary.currencyTypeStringENUM("MYR")Settlement Currency Type ( currently supported MYR only)
summary.noOfTransactionsUint64Count of settled transactions
summary.settlementAtStringRFC3339Date and time of the settlement
summary.totalSalesAmountUint64Total sales amount in cents
transactions[*].amountUint64Transactions amount in cents
transactions[*].currencyTypeUint64ENUM("MYR")Transaction Currency Type ( currently supported MYR only)
transactions[*].transactionAtStringRFC3339Date and time of the transaction
transactions[*].transactionIdStringTransaction ID
transactions[*].typeStringENUM("SALE","VOID")Transaction type