Я предлагаю вам использовать PGSDK 2,0 вместо старой версии, которая не требуется какой-либо сторона сертификата клиента
----------
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PaytmButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
getPaytmWindow() ;
}
});
}
}
private void getPaytmWindow(String checksum) {
//use PaytmPGService Service = PaytmPGService.getProductionService();in production//
PaytmPGService Service = PaytmPGService.getStagingService();
//Kindly create complete Map and checksum on your server side and then put it here in paramMap.
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("MID", abc14146028455452");
paramMap.put("ORDER_ID", "GTR6079");
paramMap.put("CUST_ID", "1132");
paramMap.put("INDUSTRY_TYPE_ID", "Retail");
paramMap.put("CHANNEL_ID", "WAP");
paramMap.put("TXN_AMOUNT", "76");
paramMap.put("WEBSITE", "APP_STAGING");
paramMap.put("EMAIL", "[email protected]");
paramMap.put("MOBILE_NO", "7777777777");
paramMap.put("CALLBACK_URL", "https://pguat.paytm.com/paytmchecksum/paytmCallback.jsp");
paramMap.put("CHECKSUMHASH", "DkrZCCNCKS0h4IbLEk8HWqTClr6PCK/+Zh3xyW7fXfOsfHsmhmt3/wGx5pxgWrCSNCObPHyYFE3VJob0v7QQdkBFNyNAO7CR2+e2BiVgQpM=");
PaytmOrder Order = new PaytmOrder(paramMap);
Service.initialize(Order, null);
Service.startPaymentTransaction(this, true, true,
new PaytmPaymentTransactionCallback() {
@Override
public void someUIErrorOccurred(String inErrorMessage) {
// Some UI Error Occurred in Payment Gateway Activity.
// // This may be due to initialization of views in
// Payment Gateway Activity or may be due to //
// initialization of webview. // Error Message details
// the error occurred.
Log.d("LOG123444", "someUIErrorOccurred : " + inErrorMessage);
}
@Override
public void onTransactionResponse(Bundle inResponse) {
Log.d("LOG123444", "Payment Transaction : " + inResponse);
if (inResponse.getString("STATUS").contains("TXN_SUCCESS"))
{
Toast.makeText(getApplicationContext(),"Transaction completed",Toast.LENGTH_LONG).show();
}
Log.i("LOG123444", inResponse.getString("STATUS") );
// Toast.makeText(getApplicationContext(), "Payment Transaction response " + inResponse.toString(), Toast.LENGTH_LONG).show();
}
@Override
public void networkNotAvailable() {
// If network is not
// available, then this
// method gets called.
}
@Override
public void clientAuthenticationFailed(String inErrorMessage) {
// This method gets called if client authentication
// failed. // Failure may be due to following reasons //
// 1. Server error or downtime. // 2. Server unable to
// generate checksum or checksum response is not in
// proper format. // 3. Server failed to authenticate
// that client. That is value of payt_STATUS is 2. //
// Error Message describes the reason for failure.
Log.i("LOG123444", "clientAuthenticationFailed " + inErrorMessage);
}
@Override
public void onErrorLoadingWebPage(int iniErrorCode,
String inErrorMessage, String inFailingUrl) {
Log.i("LOG", "inErrorMessage " + inErrorMessage);
Log.i("LOG", "inFailingUrl " + inFailingUrl);
}
// had to be added: NOTE
@Override
public void onBackPressedCancelTransaction() {
// TODO Auto-generated method stub
}
@Override
public void onTransactionCancel(String inErrorMessage, Bundle inResponse) {
Log.d("LOG", "Payment Transaction Failed " + inErrorMessage);
Toast.makeText(getBaseContext(), "Payment Transaction Failed ", Toast.LENGTH_LONG).show();
}
});
}
Если я использую нуль это показывает ** Клиентский сертификат не найден ** и останавливается в середине транзакции, как 'Может не POST /' – jafarbtech
Можете ли вы опубликовать полный журнал ошибок? Основная проблема, которую разработчики получают во время интеграции шлюза paytm, - проблема хеша –
То, что вы сказали, точно верно. И я сделал ошибку, отправив неправильный номер мобильного телефона (не 10 цифр). В моем случае это была ошибка. Любые способы спасибо :) – jafarbtech