我需要在我的Android应用程序中集成payU支付网关 . 但是,当应用程序试图获取哈希键时,它会给出错误说明
Hash param丢失了
在演示应用程序中,有两个选项可以生成哈希
if(null == salt)
generateHashFromServer(mPaymentParams);
else
generateHashFromSDK(mPaymentParams, intent.getStringExtra(PayuConstants.SALT));
在演示应用程序中,有一条说明哈希密钥生成应该在服务器端完成
所以我将盐传递为null
但现在问题是我必须使用哪个服务器URL来生成哈希?演示应用正在使用此网址https://payu.herokuapp.com/get_hash
4 回答
我希望它对其他人有用我发现了一个用于在下面的链接中生成哈希的PHP脚本
https://docs.google.com/document/d/1wby1TStudKuOtIRmUIc3ZqDVOg20mks8q5mT40i60qw/edit
复制PHP代码并编辑密钥和盐 .
PayU资金不提供任何类型的API,因此,人们使用webview代替 .
通过做一点搜索我得到了解决方案 .
只需使用自己的服务器生成所有必需的哈希 . 获得所有必需的哈希值后,我们需要使用此哈希值制作PayuHashes Obj,并在此意图中传递此Obj
PayU SDK将负责休息
您必须使用自己的服务器URL来生成哈希键 . 在Android应用程序中,您必须设置3个必需的哈希键,否则您将收到错误“必需的哈希键丢失” .
确保已将此3个键设置为payuHashes对象 .
payuHashes.setPaymentHash(response.getString("payment_hash"));
payuHashes.setVasForMobileSdkHash(response.getString("vas_for_mobile_sdk_hash"));
payuHashes.setPaymentRelatedDetailsForMobileSdkHash(response.getString("payment_related_details_for_mobile_sdk_hash"));
以下三个哈希值对于支付流是强制性的,需要在商家服务器上生成:1 . 支付哈希是需要从商家服务器端生成的强制哈希之一 . 以下是生成payment_hash的公式 - sha512(关键| txnid |金额| productinfo | firstname | email | udf1 | udf2 | udf3 | udf4 | udf5 |||||| SALT)
SHA512(键|命令| VAR1 |盐)
这里,var1将是"default"
sha512(key | command | var1 | salt)这里,var1将是用户凭据 . 如果您没有使用user_credentials,请使用“default” .
从这里参考示例sdk:https://github.com/payu-intrepos/Android-SDK-Sample-App/releases/
有关服务器端代码,请参阅:https://github.com/payu-intrepos/Documentations/wiki/4.-Server-Side