我在這裏有一個棘手的問題。我需要用戶在英國向銀行(即Barclaycard)付款。爲此,我有一個https URL,我將這些參數(如金額支付,訂單參考等)添加到URL中,啓動這個http連接作爲Intent.ActionView,它會將用戶重定向到瀏覽器,在那裏他可以在銀行網頁上輸入他的信用卡詳細信息,併成功將款項支付到我們的帳戶。到現在爲止還挺好 ?在Android中以編程方式監控網絡瀏覽器?
我使用的代碼如下(我爲隱私原因更改了值)問題是,當用戶完成/失敗/取消付款時,我需要返回到應用程序。 Barclaycarda在支付成功時自動重定向到特定的URL,如果失敗則自動重定向到另一個URL。有沒有辦法知道什麼時候Barclaycard支付成功,以便我可以以某種方式返回到Android應用程序?
Button cardbutton = (Button) findViewById(R.id.card_button);
cardbutton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
String preHashString = new String();
String proHashString = new String();
String SHAPassPhrase = new String();
SHAPassPhrase = "GSvTh£h70ZkHdAq9b"; // FOR TEST ENVIRONMENT
preHashString = preHashString + "AMOUNT=" + String.valueOf((int) (order.getPaymentAmount() * 100.00)) + SHAPassPhrase;
preHashString = preHashString + "BGCOLOR=cccccc" + SHAPassPhrase;
preHashString = preHashString + "CN=" + user.getString("name") + SHAPassPhrase;
preHashString = preHashString + "CURRENCY=GBP" + SHAPassPhrase;
preHashString = preHashString + "LANGUAGE=en_US" + SHAPassPhrase;
preHashString = preHashString + "ORDERID=" + order.getOrderId() + SHAPassPhrase;
try
{
proHashString = SHA1(preHashString);
}
catch (NoSuchAlgorithmException e)
{
e.printStackTrace();
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
String redirecturl = "https://mdepayments.epdq.co.uk/ncol/test/orderstandard.asp";
redirecturl += "?AMOUNT=" + String.valueOf((int) (order.getPaymentAmount() * 100));
redirecturl += "&CN=" + user.getString("name");
redirecturl += "&CURRENCY=GBP";
redirecturl += "&LANGUAGE=en_US";
redirecturl += "&ORDERID=" + order.getOrderId();
redirecturl += "&SHASIGN=" + proHashString;
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(redirecturl));
startActivity(i);
}
});
爲您的應用添加一個意向過濾器,以獲得成功和失敗的URL – 2013-04-05 16:51:07
非常感謝,這就是我正在尋找的,實際上您給了我一個好主意,即在應用內的webview中打開url並有意圖爲該webbiew活動過濾器,現在的問題是我怎麼做 – 2013-04-05 17:18:02