Cập nhật: SDK Android hiện được cổng thanh toán ATOM cung cấp. Click this để tải SDK cho nhiều nền tảng khác nhau.
Như chúng ta đã biết ATOM doesnt Cung cấp SDK Sau nhiều resarch tôi đã tìm thấy giải pháp
Gọi AsyncTask này trên nút Thanh toán nhấp
private class StartPayment extends AsyncTask<String, Void, String> {
String Atom2Request;
@Override
protected String doInBackground(String... params) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String CurrDateTime = sdf.format(new Date()).toString();
vVenderURL = "https://paynetzuat.atomtech.in/paynetz/epi/fts?login=160&[email protected]&ttype=NBFundTransfer&prodid=NSE&amt=50&txncurr=INR&txnscamt=0&clientcode=TkFWSU4%3d&txnid=123&date=03/07/2015&custacc=1234567890&udf1=Customer&[email protected]&udf3=8485835654&udf4=pune&ru=http://example.webservice/response.aspx?";
Log.d("Vvendor URL", vVenderURL);
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(vVenderURL); // getting XML
Document doc = parser.getXMLElement(xml); // getting DOM element
Log.d("XML URL", xml);
NodeList nList = doc.getElementsByTagName(KEY_RESPONSE);
for (int tempN = 0; tempN < nList.getLength(); tempN++) {
Node nNode = nList.item(tempN);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("URL : " + eElement.getElementsByTagName("url").item(0).getChildNodes().item(0).getNodeValue());
xmlURL = eElement.getElementsByTagName("url").item(0).getChildNodes().item(0).getNodeValue();
NodeList aList = eElement.getElementsByTagName("param");
String vParamName;
for (int atrCnt = 0; atrCnt < aList.getLength(); atrCnt++) {
vParamName = aList.item(atrCnt).getAttributes().getNamedItem("name").getNodeValue();
System.out.println("<br>paramName : : " + vParamName);
if (vParamName.equals("ttype")) {
xmlttype = aList.item(atrCnt).getChildNodes().item(0).getNodeValue();
} else if (vParamName.equals("tempTxnId")) {
xmltempTxnId = aList.item(atrCnt).getChildNodes().item(0).getNodeValue();
} else if (vParamName.equals("token")) {
xmltoken = aList.item(atrCnt).getChildNodes().item(0).getNodeValue();
} else if (vParamName.equals("txnStage")) {
xmltxnStage = aList.item(atrCnt).getChildNodes().item(0).getNodeValue();
}
}
Log.d("XML URL", xmlURL);
Log.d("XML TRANS TYPE", xmlttype);
Log.d("tempTxnId : ", xmltempTxnId);
Log.d("param : token :", xmltoken);
Log.d("param : txnStage : ", xmltxnStage);
}
}//for
Atom2Request = xmlURL + "?ttype=" + xmlttype + "&tempTxnId=" + xmltempTxnId + "&token=" + xmltoken + "&txnStage=" + xmltxnStage;
Atom2Request = Atom2Request.replace(" ", "%20");
Log.d("ATOM 2nd Request URl", Atom2Request);
return Atom2Request;
}
@Override
protected void onPostExecute(String result) {
if (pDialog != null) {
pDialog.dismiss();
Intent intent = new Intent(Recharge_Activity.this, WebContent.class);
intent.putExtra(KEY_ATOM2REQUEST, result);
startActivityForResult(intent, 3);
}
}
@Override
protected void onPreExecute() {
pDialog.setMessage("Processing Request...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
super.onPreExecute();
}
}
khi chúng tôi đã nhận phản hồi từ trang web chúng tôi có tạo thành url và chuyển đến
WebContent.class
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class WebContent extends Activity {
private static final String TAG = "WebContent";
SharedPreferences sp;
static Context mContext;
public static final String KEY_ATOM2REQUEST = "Atom2Request";
String Atom2Request;
Intent intent;
boolean loadingFinished = true;
boolean redirect = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webviewrecharge);
// Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));
mContext = this;
Bundle extras = getIntent().getExtras();
if (extras != null)
Atom2Request = extras.getString(KEY_ATOM2REQUEST);
Log.d("ATOM2Request webview", Atom2Request);
WebView webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new MyWebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
webView.loadUrl(Atom2Request);
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) {
if (!loadingFinished) {
redirect = true;
}
loadingFinished = false;
view.loadUrl(urlNewString);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap facIcon) {
loadingFinished = false;
//SHOW LOADING IF IT ISNT ALREADY VISIBLE
Log.w(TAG, "Loading");
}
@Override
public void onPageFinished(WebView view, String url) {
if (!redirect) {
loadingFinished = true;
}
if (loadingFinished && !redirect) {
//HIDE LOADING IT HAS FINISHED
Log.w(TAG, "Finish Loading");
} else {
redirect = false;
}
}
}
public class WebAppInterface {
Context mContext;
WebAppInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public void onResponse(String reponseText) {
Intent returnIntent = new Intent();
returnIntent.putExtra("Result", reponseText);
setResult(RESULT_OK, returnIntent);
finish();
}
}
}
// trong vVendorURl bạn cần một url chuyển hướng để lấy yêu cầu từ ATOM và gửi đáp ứng với android Mobile
Chỉ cần đặt mã bên url chuyển hướng
// reponseText là văn bản recevied ATOM frm đó là Okay hoặc Không
trong vVendorUrl bạn phải vượt qua một trở url..make một trang trong máy chủ ..và đặt java này tập lệnh mã bên trong url.
<script type="text/javascript">
function showAndroidToast(reponseText) {
Android.onResponse(reponseText);
}
Tôi cũng gặp vấn đề tương tự AFAIK, Atom không cung cấp bất kỳ SDK di động nào. một cổng dựa trên web của nó. vì vậy có cách nào để thực hiện điều này trong một webview trong android? cũng là phương thức gọi lại được sử dụng (ví dụ: Oauth). Tôi không phải là người chuyên nghiệp và không biết bắt đầu từ đâu. Hãy giúp tôi. – ShahiM