我正在尝试将payumoney与android和php集成为后端。但是交易完成后,响应哈希值与php服务器生成的哈希值不匹配。
Android代码
builder.setAmount(amount)
.setTxnId(txn)
.setPhone(mobile)
.setProductName(product)
.setFirstName(fname)
.setEmail(email)
.setsUrl(surl)
.setfUrl(furl)
.setUdf1(udf1)
.setUdf2("")
.setUdf3("")
.setUdf4("")
.setUdf5("")
.setUdf6("")
.setUdf7("")
.setUdf8("")
.setUdf9("")
.setUdf10("")
.setIsDebug(true)
.setKey(Common.MERCHANT_KEY)
.setMerchantId(Common.MERCHANT_ID);
try {
paymentParam = builder.build();
// hash is generated in php server and return it to android app with txnId
paymentParam.setMerchantHash(hash);
PayUmoneyFlowManager.startPayUMoneyFlow(paymentParam, StartPaymentActivity.this, R.style.AppTheme_default, false);
} catch (Exception e) {
Log.e(TAG, " errors "+e.toString());
}
PHP代码生成事务哈希
$hash=hash('sha512',key.'|'.txnid.'|'.amount.'|'.pinfo.'|'.fname.'|'
.email.'|'.udf1.'||||||||||'.salt);
用于生成响应哈希的PHP代码
$responseHashSeq = SALT.'|'.status.'||||||||||'.udf1.'|'.email.'|'.firstname.'|'.productinfo.'|'.amount.'|'.txnid.'|'.MERCHANT_KEY;
我还尝试了以下Payumoney文档中提到的代码来生成响应哈希
$responseHashSeq = SALT.'|'.status.'|'.udf1.'||||||'.email.'|'.firstname.'|'.productinfo.'|'.amount.'|'.txnid.'|'.MERCHANT_KEY;
但是他们都不起作用。
答案 0 :(得分:0)
尝试使用您尝试生成的相同序列
$ responseHashSeq = MERCHANT_KEY。'|'.txnid。'|'amount'|'pinfo'|'fname'|'email'|'udf1'||||||||||||。'。salt;