如何在 UPI DeepLink URI 中创建符号参数值

问题描述 投票:0回答:2

深层链接 URI 字符串看起来像

upi://pay?pa={收款人地址}&pn={收款人名称}&am={金额}&cu={货币代码}&tn={transaction_note}&sign={sign_key}

android deep-linking upi
2个回答
0
投票

您可以创建一个方法来生成此

UPI

private fun getUPIString(
    payeeAddress: String,
    payeeName: String,
    payeeAmount: String,
    currencyCode: String,
    transactionNote: String,
    signKey: String,
): String {
      val upi =
            "upi://pay?&pa=$payeeAddress&pn=$payeeName&am=$payeeAmount&cu=$currencyCode&tn=$transactionNote&sign=$signKey"
      return upi.replace(" ", "+")
}

然后你做一个简单的

Intent
来创建选择器

val intent = Intent()
intent.action = Intent.ACTION_VIEW
intent.data = Uri.parse(upi)
val chooser = Intent.createChooser(intent, "Pay with...")
startActivityForResult(chooser, 1, null)

创建您可以使用的签名密钥:

private fun generateSignKey() {
   val secureRandom = SecureRandom()
   val keyPairGenerator = KeyPairGenerator("RSA")
   keyPairGenerator.initialize(2048, secureRandom)
   val keyPair = keyPairGenerator.generateKeyPair()
}

现在

keyPair
包含私钥和公钥,因此您需要使用私钥对UPI交易(signKey)有效负载进行签名,并使用公钥对有效负载进行加密并验证签名,请确保您将加密的私钥存储在安全的地方。


-1
投票

这方面有什么更新吗? 我也在找同样的

© www.soinside.com 2019 - 2024. All rights reserved.