Ich schlage vor, Sie PGSDK 2.0 anstelle der alten Version zu verwenden, die erforderlich ist, kein Client-Seite Zertifikat
----------
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();
}
});
}
Wenn ich null verwenden es zeigt ** Client-Zertifikat ** nicht gefunden wird, und stoppt in der Mitte der Transaktion als 'Kann nicht POST /' – jafarbtech
können Sie nach Protokoll vollständige Fehler entdeckt? Das Hauptproblem, das Entwickler bekommen, wenn sie paytm Gateway integrieren, ist Hash-Problem –
Was Sie gesagt haben, ist genau richtig. Und ich habe einen Fehler gemacht, indem ich eine falsche Handynummer (nicht 10 Ziffern) gesendet habe. In meinem Fall war das der Fehler. Irgendwelche Möglichkeiten, danke :) – jafarbtech