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方法來請建議我哪裏做錯了,請幫助: 屏幕來像THI的磨合後的應用程序:
還是相同的異常變化的關鍵和MKEY @Lakhan後即將 –
只是嘗試登錄您的所有細節 –
HTTP:/ /snag.gy/qaJGn.jpg –