-3

嗨,我想整合 paytm,我做了一个 Paytm 的样本。我已经在 paytm 上创建了我的开发者帐户,并获得了应用程序凭据、商家详细信息等。但它似乎不起作用。它显示错误:Oops! Session expired due to inctivity our system encounted an obstacle. 请告诉我步骤。这是我的代码

public void onStartTransaction(View view) {
    PaytmPGService Service = PaytmPGService.getStagingService();
    Map<String, String> paramMap = new HashMap<String, String>();

    // these are mandatory parameters

    paramMap.put("ORDER_ID", ((EditText) findViewById(R.id.order_id)).getText().toString());
    paramMap.put("MID", ((EditText) findViewById(R.id.merchant_id)).getText().toString());
    paramMap.put("CUST_ID", ((EditText) findViewById(R.id.customer_id)).getText().toString());
    paramMap.put("CHANNEL_ID", ((EditText) findViewById(R.id.channel_id)).getText().toString());
    paramMap.put("INDUSTRY_TYPE_ID", ((EditText) findViewById(R.id.industry_type_id)).getText().toString());
    paramMap.put("WEBSITE", ((EditText) findViewById(R.id.website)).getText().toString());
    paramMap.put("TXN_AMOUNT", ((EditText) findViewById(R.id.transaction_amount)).getText().toString());
    paramMap.put("THEME", ((EditText) findViewById(R.id.theme)).getText().toString());
    paramMap.put("EMAIL", ((EditText) findViewById(R.id.cust_email_id)).getText().toString());
    paramMap.put("MOBILE_NO", ((EditText) findViewById(R.id.cust_mobile_no)).getText().toString());
    PaytmOrder Order = new PaytmOrder(paramMap);

    PaytmMerchant Merchant = new PaytmMerchant(
            "https://pguat.paytm.com/paytmchecksum/paytmCheckSumGenerator.jsp",
            "https://pguat.paytm.com/paytmchecksum/paytmCheckSumVerify.jsp");

    Service.initialize(Order, Merchant, 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.
                }

                @Override
                public void onTransactionSuccess(Bundle inResponse) {
                    // After successful transaction this method gets called.
                    // // Response bundle contains the merchant response
                    // parameters.
                    Log.e("LOG", "Payment Transaction is successful " + inResponse);
                    Toast.makeText(getApplicationContext(), "Payment Transaction is successful ", Toast.LENGTH_LONG).show();
                }

                @Override
                public void onTransactionFailure(String inErrorMessage,
                        Bundle inResponse) {
                    // This method gets called if transaction failed. //
                    // Here in this case transaction is completed, but with
                    // a failure. // Error Message describes the reason for
                    // failure. // Response bundle contains the merchant
                    // response parameters.
                    Log.e("LOG", "Payment Transaction Failed " + inErrorMessage);
                    Toast.makeText(getBaseContext(), "Payment Transaction Failed ", Toast.LENGTH_LONG).show();
                }

                @Override
                public void networkNotAvailable() { // If network is not
                                                    // available, then this
                                                    // method gets called.

                    Log.e("LOG", "Payment Transaction Network Not Available !!!!!!!~~~~~~~~~" );
                }

                @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.e("LOG", "~~~~~~~~~~~~~ Payment Transaction Client Auth Failed ~~~~~~~~~"  + inErrorMessage);
                }

                @Override
                public void onErrorLoadingWebPage(int iniErrorCode,
                        String inErrorMessage, String inFailingUrl) {

                }

                // had to be added: NOTE
                @Override
                public void onBackPressedCancelTransaction() {
                    // TODO Auto-generated method stub
                }

            });
}

请检查 logcat 响应:-

        INDUSTRY_TYPE_ID=Retail&CHANNEL_ID=WAP&CHECKSUMHASH=Y1gNn%2BSaRMBSkv8WKLHGO0lchmnAqL10YeRZGQkYQv02iIfCa6qeoKZpAhJh8%2BTVP1uXvZuB5PnwM6AZe3LJ4q9oIB%2B1voaX7vjc%2FmjGg%2B4%3D&MOBILE_NO=pawan3&TXN_AMOUNT=1&MID=Bright17797484586497&EMAIL=pawandeepkaurkalsi%40gmail.com&THEME=merchant&payt_STATUS=1&CUST_ID=CUST23657&WEBSITE=BrightRootsPaytm&ORDER_ID=ORDER100004939
 01-09 17:44:01.953 14201-14201/com.example.merchantapp I/cr_Ime: ImeThread is enabled.
 01-09 17:44:01.954 14201-16142/com.example.merchantapp W/cr_media: Requires BLUETOOTH permission
 01-09 17:44:02.009 14201-14201/com.example.merchantapp D/PGSDK: Page started loading https://pguat.paytm.com/oltp-web/processTransaction
 01-09 17:44:02.011 14201-14201/com.example.merchantapp D/PGSDK: Progress dialog started
 01-09 17:44:02.033 14201-16176/com.example.merchantapp E/libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)
 01-09 17:44:02.063 14201-16176/com.example.merchantapp W/VideoCapabilities: Unrecognized profile/level 32768/2 for video/mp4v-es
 01-09 17:44:02.063 14201-16176/com.example.merchantapp I/VideoCapabilities: Unsupported profile 8 for video/mp4v-es
 01-09 17:44:02.063 14201-16176/com.example.merchantapp I/VideoCapabilities: Unsupported profile 8 for video/mp4v-es
 01-09 17:44:02.063 14201-16176/com.example.merchantapp I/VideoCapabilities: Unsupported profile 8 for video/mp4v-es
 01-09 17:44:02.063 14201-16176/com.example.merchantapp I/VideoCapabilities: Unsupported profile 8 for video/mp4v-es
01-09 17:44:02.064 14201-16176/com.example.merchantapp I/VideoCapabilities: Unsupported profile 8 for video/mp4v-es
01-09 17:44:02.064 14201-16176/com.example.merchantapp I/VideoCapabilities: Unsupported profile 8 for video/mp4v-es
01-09 17:44:02.100 14201-16176/com.example.merchantapp I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es
01-09 17:44:02.783 14201-14201/com.example.merchantapp W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 14201
01-09 17:44:03.145 14201-14201/com.example.merchantapp E/chromium: [ERROR:interface_registry.cc(99)] Failed to locate a binder for interface: autofill::mojom::AutofillDriver
01-09 17:44:04.293 14201-14201/com.example.merchantapp D/PGSDK: Page finished loading https://pguat.paytm.com/oltp-web/processTransaction
 01-09 17:44:04.294 14201-14201/com.example.merchantapp D/PGSDK: Progress dialog ended
4

1 回答 1

0

请按照步骤集成 paytm。

步骤如下。1.从http://paywithpaytm.com/developer/#web_pluginhttps://github.com/Paytm-Payments/Paytm_Android_App_Kit下载 PGSDK 库

2.客户端证书(可选:由PAYTM Web提供)。客户端证书的密码。(可选:由 PAYTM Web 提供)。在原始文件夹中添加客户端证书文件。如果原始文件夹不存在,则在“res”文件夹中创建原始文件夹。

3.将 INTERNET 和 ACCESS_NETWORK_STATE 权限添加到您的 AndroidManifest.xml。PGSDK Service 运行需要这两个权限。AndroidManifest.xml

4.在您的 AndroidManifest.xml 中添加 PaytmPGActivity,并且此活动已存在于您的 PGSDK 中。此活动执行所有交易相关信息并为您提供回调。

按照这个链接 希望这有帮助。:)

于 2017-01-09T12:25:08.417 回答