2016-01-12 54 views
0
public class MainActivity extends Activity { 
     String merchant_key = "JBZaLc"; 
     String salt = "GQs7yium"; 
     String action1 = ""; 
     String base_url = "https://test.payu.in"; 
     String txnid = "TXN8367286482920"; 
     String amount = "1000"; 
     String productInfo = "This good Product"; 
     String firstName = "Rajesh"; 
     String emailId = "[email protected]"; 
     private String SUCCESS_URL = "https://www.payumoney.com/contactus.html"; 
     private String FAILED_URL = "https://www.payumoney.com/contactus.html"; 
     private String phone = "9999389917"; 
     private String serviceProvider = "payu_paisa"; 
     private String hash = ""; 
     Handler mHandler = new Handler(); 
     WebView webView; 
     @SuppressLint("SetJavaScriptEnabled") 


     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      webView=(WebView)findViewById(R.id.webView); 
      JSONObject productInfoObj = new JSONObject(); 
      JSONArray productPartsArr = new JSONArray(); 
      JSONObject productPartsObj1 = new JSONObject(); 
      JSONObject paymentIdenfierParent = new JSONObject(); 
      JSONArray paymentIdentifiersArr = new JSONArray(); 
      JSONObject paymentPartsObj1 = new JSONObject(); 
      JSONObject paymentPartsObj2 = new JSONObject(); 
      try { 
       // Payment Parts 
       productPartsObj1.put("name", "abc"); 
       productPartsObj1.put("description", "abcd"); 
       productPartsObj1.put("value", "1000"); 
       productPartsObj1.put("isRequired", "true"); 
       productPartsObj1.put("settlementEvent", "EmailConfirmation"); 
       productPartsArr.put(productPartsObj1); 
       productInfoObj.put("paymentParts", productPartsArr); 
       // Payment Identifiers 
       paymentPartsObj1.put("field", "CompletionDate"); 
       paymentPartsObj1.put("value", "31/10/2012"); 
       paymentIdentifiersArr.put(paymentPartsObj1); 
       paymentPartsObj2.put("field", "TxnId"); 
       paymentPartsObj2.put("value", txnid); 
       paymentIdentifiersArr.put(paymentPartsObj2); 
       paymentIdenfierParent.put("paymentIdentifiers", 
         paymentIdentifiersArr); 
       productInfoObj.put("", paymentIdenfierParent); 
      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      productInfo = productInfoObj.toString(); 

      Log.e("TAG", productInfoObj.toString()); 

      Random rand = new Random(); 
      String rndm = Integer.toString(rand.nextInt()) 
        + (System.currentTimeMillis()/1000L); 
      txnid = hashCal("SHA-256", rndm).substring(0, 20); 

      hash = hashCal("SHA-512", merchant_key + "|" + txnid + "|" + amount 
        + "|" + productInfo + "|" + firstName + "|" + emailId 
        + "|||||||||||" + salt); 

      action1 = base_url.concat("/_payment"); 

      webView.setWebViewClient(new WebViewClient() { 

       @Override 
       public void onReceivedError(WebView view, int errorCode, 
              String description, String failingUrl) { 
        // TODO Auto-generated method stub 
        Toast.makeText(MainActivity.this, "Oh no! " + description, 
          Toast.LENGTH_SHORT).show(); 
       } 

       @Override 
       public void onReceivedSslError(WebView view, 
               SslErrorHandler handler, SslError error) { 
        // TODO Auto-generated method stub 
        Toast.makeText(MainActivity.this, "SslError! " + error, 
          Toast.LENGTH_SHORT).show(); 
        handler.proceed(); 
       } 

       @Override 
       public boolean shouldOverrideUrlLoading(WebView view, String url) { 
        Toast.makeText(MainActivity.this, "Page Started! " + url, 
          Toast.LENGTH_SHORT).show(); 
        if (url.equals(SUCCESS_URL)) { 
         Toast.makeText(MainActivity.this, "Success! " + url, 
           Toast.LENGTH_SHORT).show(); 
        } else { 
         Toast.makeText(MainActivity.this, "Failure! " + url, 
           Toast.LENGTH_SHORT).show(); 
        } 
        return super.shouldOverrideUrlLoading(view, url); 
       } 
       // 
       // @Override 
       // public void onPageFinished(WebView view, String url) { 
       // super.onPageFinished(view, url); 
       // 
       // Toast.makeText(PayMentGateWay.this, "" + url, 
       // Toast.LENGTH_SHORT).show(); 
       // } 
      }); 

      webView.setVisibility(View.VISIBLE); 
      webView.getSettings().setBuiltInZoomControls(true); 
      webView.getSettings().setCacheMode(2); 
      webView.getSettings().setDomStorageEnabled(true); 
      webView.clearHistory(); 
      webView.clearCache(true); 
      webView.getSettings().setJavaScriptEnabled(true); 
      webView.getSettings().setSupportZoom(true); 
      webView.getSettings().setUseWideViewPort(false); 
      webView.getSettings().setLoadWithOverviewMode(false); 
      webView.addJavascriptInterface(new PayUJavaScriptInterface(MainActivity.this), 
        "PayUMoney"); 
      Map<String, String> mapParams = new HashMap<String, String>(); 
      mapParams.put("key", merchant_key); 
      mapParams.put("hash", hash); 
      mapParams.put("txnid", txnid); 
      mapParams.put("service_provider", "payu_paisa"); 
      mapParams.put("amount", amount); 
      mapParams.put("firstname", firstName); 
      mapParams.put("email", emailId); 
      mapParams.put("phone", phone); 
      mapParams.put("productinfo", productInfo); 
      mapParams.put("surl", SUCCESS_URL); 
      mapParams.put("furl", FAILED_URL); 
      mapParams.put("lastname", "Vijayakumar"); 
      mapParams.put("address1", "sdas"); 
      mapParams.put("address2", "dasd"); 
      mapParams.put("city", "adsa"); 
      mapParams.put("state", "asdas"); 
      mapParams.put("country", "adsas"); 
      mapParams.put("zipcode", "45465"); 
      mapParams.put("udf1", "sdaa"); 
      mapParams.put("udf2", "adsasd"); 
      mapParams.put("udf3", "adsad"); 
      mapParams.put("udf4", "adsd"); 
      mapParams.put("udf5", "dasdas"); 
      // mapParams.put("pg", (empty(PayMentGateWay.this.params.get("pg"))) ? 
      // "" 
      // : PayMentGateWay.this.params.get("pg")); 
      webview_ClientPost(webView, action1, mapParams.entrySet()); 

     } 

     public class PayUJavaScriptInterface { 
      Context mContext; 

      /** 
      * Instantiate the interface and set the context 
      */ 
      PayUJavaScriptInterface(Context c) { 
       mContext = c; 
      } 

      public void success(long id, final String paymentId) { 

       mHandler.post(new Runnable() { 

        public void run() { 
         mHandler = null; 
         Toast.makeText(MainActivity.this, "Success", 
           Toast.LENGTH_SHORT).show(); 
        } 
       }); 
      } 
     } 

     public void webview_ClientPost(WebView webView, String url, 
             Collection<Map.Entry<String, String>> postData) { 
      StringBuilder sb = new StringBuilder(); 

      sb.append("<html><head></head>"); 
      sb.append("<body onload='form1.submit()'>"); 
      sb.append(String.format("<form id='form1' action='%s' method='%s'>", 
        url, "post")); 
      for (Map.Entry<String, String> item : postData) { 
       sb.append(String.format(
         "<input name='%s' type='hidden' value='%s' />", 
         item.getKey(), item.getValue())); 
      } 
      sb.append("</form></body></html>"); 
      Log.d("Tag", "webview_ClientPost called"); 
     // webView.loadData(sb.toString(), "text/html", "utf-8"); 
      webView.postUrl("https://secure.payu.in/_payment", EncodingUtils.getBytes(sb.toString(), "base64")); 

     } 

     public boolean empty(String s) { 
      if (s == null || s.trim().equals("")) 
       return true; 
      else 
       return false; 
     } 

     public String hashCal(String type, String str) { 
      byte[] hashseq = str.getBytes(); 
      StringBuffer hexString = new StringBuffer(); 
      try { 
       MessageDigest algorithm = MessageDigest.getInstance(type); 
       algorithm.reset(); 
       algorithm.update(hashseq); 
       byte messageDigest[] = algorithm.digest(); 

       for (int i = 0; i < messageDigest.length; i++) { 
        String hex = Integer.toHexString(0xFF & messageDigest[i]); 
        if (hex.length() == 1) 
         hexString.append("0"); 
         hexString.append(hex); 
       } 
      } catch (NoSuchAlgorithmException nsae) { 
      } 
      return hexString.toString(); 

     } 
} 

這是我的代碼,我在payu支付度假集成應用了與Android應用程序,但是當我在測試模式下運行該應用程序,然後有例外未來異常即將當我融入payu支付getway與Android應用

異常低於:

primary error: 3 certificate: Issued to: CN=*.payubiz.in,O=Payu Payments pvt. ltd.,L=Gurgaon,ST=Haryana,C=IN; 
Issued by: CN=GeoTrust SSL CA - G3,O=GeoTrust Inc.,C=US; 

與此異常在行onReceivedSslError方法來請建議我哪裏做錯了,請幫助: enter image description here 屏幕來像THI的磨合後的應用程序:

回答

0

嘗試使用payyou以下商家和鹽鍵測試

private String mMerchantKey = "gtKFFx"; 
    private String mSalt = "eCwWELxi"; 
+0

還是相同的異常變化的關鍵和MKEY @Lakhan後即將 –

+0

只是嘗試登錄您的所有細節 –

+0

HTTP:/ /snag.gy/qaJGn.jpg –

相關問題