2015-06-19 19 views
11

Tôi mới sử dụng Android.
Tôi muốn biết làm cách nào để tích hợp cổng thanh toán ATOM trang thanh toán di động trong ứng dụng của tôi?Làm cách nào để tích hợp cổng thanh toán ATOM trong ứng dụng của tôi?

Tôi muốn nó để người dùng điền vào chi tiết thẻ tín dụng của mình và thanh toán trực tuyến.

Nếu tôi sử dụng cổng thanh toán khác, như Paytm hoặc Payu họ cung cấp một SDK, nhưng Atom không

Bất kỳ trợ giúp sẽ được đánh giá

+0

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

Trả lời

3

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 urlchuyể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); 
} 

+0

Tôi đang thực hiện thanh toán bằng mã của bạn. Nhưng không thể nhận được phản ứng từ nguyên tử. bạn đã đề cập đến mã javascript ở đây. Tôi không biết làm thế nào tôi sẽ sử dụng nó. Plz giúp – Laxmeena

+1

rằng mã javascript giúp bạn nhận được phản hồi từ máy chủ..cập nhật mã đó trong một trang web ..và lưu nó vào máy chủ trực tiếp .... trong url Vvendor tham số cuối cùng là ru đặt url máy chủ đó trong ru..đó là nó – Tufan

+0

tôi có thể nhận được id email ur hoặc điện thoại không có plz. nó sẽ là một ưu tiên lớn. – Laxmeena

4

Theo this, không có java và/hoặc SDK Android được do chúng cung cấp. Bạn vẫn có thể nhấp vào nút "liên hệ với chúng tôi" (ở cuối trang web) và yêu cầu họ trực tiếp thời tiết họ cung cấp bất kỳ SDK cho java/android hay không.

Cập nhật: SDK Android hiện được cung cấp bởi cổng thanh toán ATOM .Nhấp vào this để nhận điều tương tự.

+0

Bây giờ, liên kết đã cho được cung cấp SDK của nền tảng khác nhau bao gồm java và Android. Bạn nên Cập nhật câu trả lời của mình –

+0

Cảm ơn bạn đời.Đã cập nhật. – kgandroid

1

Làm cách nào để một Merchant tích hợp với Cổng thanh toán trực tuyến nguyên tử?

  1. Một thương gia trước hết cần đăng ký với nguyên tử Paynetz nguyên tử thanh toán trực tuyến.
  2. Khi khách hàng muốn thanh toán cho người bán, người bán gửi yêu cầu EPI tới nguyên tử Paynetz.
  3. Yêu cầu EPI tạo điều kiện cho việc chuyển tiền giữa khách hàng và người bán qua Paynetz.
  4. Nền tảng Paynetz xác thực người bán và trả lời bằng trọng tải XML nếu thành công.
  5. Dựa trên các tham số trong XML, trang web người bán phải gửi yêu cầu EPI mới tới Paynetz bằng cách phân tích cú pháp phản hồi XML.
  6. Danh sách các ngân hàng được chấp thuận cho người bán sẽ được hiển thị để lựa chọn trên hệ thống Paynetz, được chuyển hướng đến khách hàng.
  7. Khách hàng sau đó chọn ngân hàng mà họ muốn thực hiện thanh toán.
  8. EPI chuyển hướng khách hàng đến giao diện ngân hàng net của ngân hàng tương ứng. Bây giờ khách hàng có thể hoàn tất giao dịch.

PHP mã cho hội nhập ATOM:

1.Create một hình thức

<?php 
if ($testmode) 
{ 
$url = ‘http://203.114.240.77/paynetz/epi/fts';// test bed URL 
$port = 80; 
$atom_prod_id = “NSE”; 
} 
else 
{ 
$url = ‘https://payment.atomtech.in/paynetz/epi/fts';//live URL 
$port = 443; 
$atom_prod_id = “ESDS”; 
} 

// code to generate token 
$param = “&login=”.$userid.”&pass=”.$password.”&ttype=NBFundTransfer&prodid=”.$atom_prod_id.”&amt=”.$amount.”&txncurr=INR&txnscamt=0&clientcode=”.$clientcode.”&txnid=”.$invoiceid.”&date=”.$today.”&custacc=12345″; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_PORT , $port); 
curl_setopt($ch, CURLOPT_SSLVERSION,3); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $param); 
$returnData = curl_exec($ch); 

// Check if any error occured 
if(curl_errno($ch)) 
{ 
echo ‘Curl error: ‘ . curl_error($ch); 
} 
curl_close($ch); 

$xmlObj = new SimpleXMLElement($returnData); 
$final_url = $xmlObj->MERCHANT->RESPONSE->url; 
// eof code to generate token 
// code to generate form action 
$param = “”; 
$param .= “&ttype=NBFundTransfer”; 
$param .= “&tempTxnId=”.$xmlObj->MERCHANT->RESPONSE->param[1]; 
$param .= “&token=”.$xmlObj->MERCHANT->RESPONSE->param[2]; 
$param .= “&txnStage=1″; 
$url = $url.”?”.$param; 
// eof code to generate form action 
?> 
<form action='<?php echo $url?>’ method=’post’> 
<input type=’submit’ value=’Pay Now’ name=’btn_pay’ /> 
</form> 

Bước 2. Xử lý đáp ứng

<?php 
// log post data 
$orgipn = ”; 
foreach ($_POST as $key => $value) 
{ 
$orgipn .= (” . $key . ‘ => ‘ . $value . ‘ 
‘); 
} 
// eof log post data 

if($_POST[‘f_code’]==”Ok”) // atom status 
{ 
$invoiceid = $_POST[‘mer_txn’]; 
$amount = $_POST[‘amt’]; 
$transid = $_POST[‘mmp_txn’]; 

// add your transaction 

} 
?> 

Có phần mở rộng có sẵn mà được trả lương như cũng như những cái miễn phí có sẵn codes.

Hy vọng điều này hữu ích!

2

Bây giờ nguyên tử cung cấp SDK cho nền tảng khác nhau. Bạn có thể tải xuống trang web này từ trang web của mình atomtech

Các vấn đề liên quan