Я пытаюсь интегрировать 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;
Но ни один из них не работал.