Что такое сертификат на стороне клиента в интеграции платежного шлюза Paytm в Android?

Я почти интегрировал платежный шлюз paytm, перейдя по этой ссылке

что такое сертификат на стороне клиента в интеграции с платежным шлюзом PayTM? они упоминают, что это должно быть включено в необработанную папку. где я могу получить сертификат на стороне клиента?

К сведению: сертификат на стороне клиента не включен даже в образец приложения интеграции Paytm


person jafarbtech    schedule 10.02.2017    source источник


Ответы (2)


Вы можете передать его как null. Это также упоминается в документе

inCertificate - это объект, содержащий информацию о сертификате. Передайте это как null, если продавец не использует сертификат клиента (как указано выше в разделе «Предварительные условия»).

person rohitanand    schedule 10.02.2017
comment
Если я использую null, он показывает Сертификат клиента не найден и останавливается в середине транзакции как Cannot POST / - person jafarbtech; 10.02.2017
comment
Можете ли вы опубликовать полный журнал ошибок? Основная проблема, с которой сталкиваются разработчики при интеграции шлюза Paytm, - это проблема с хешем - person rohitanand; 10.02.2017
comment
То, что вы сказали, совершенно верно. И я сделал ошибку, отправив неправильный номер мобильного телефона (не 10 цифр). В моем случае это была ошибка. В любом случае спасибо :) - person jafarbtech; 17.02.2017

Я предлагаю вам использовать 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();
                    }



                } );

}
person Savad    schedule 10.10.2017
comment
где взять этот SDK2.0 - person Shashwat Gupta; 14.05.2018