深层链接 URI 字符串看起来像
upi://pay?pa={收款人地址}&pn={收款人名称}&am={金额}&cu={货币代码}&tn={transaction_note}&sign={sign_key}
您可以创建一个方法来生成此
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)有效负载进行签名,并使用公钥对有效负载进行加密并验证签名,请确保您将加密的私钥存储在安全的地方。
这方面有什么更新吗? 我也在找同样的