- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
public class PayUActvity extends AppCompatActivity {
WebView webView;
String merchant_key = "i4auSw";
String salt = "IW510xtG";
String action1 = "";
String base_url = "https://test.payu.in";
String txnid = "TXN8367286482920";
String amount = "1000";
String productInfo = "";
String frstName;
String emailId;
private String SUCCESS_URL = "https://dl.dropboxusercontent.com/s/dtnvwz5p4uymjvg/success.html";
private String FAILED_URL = "https://dl.dropboxusercontent.com/s/z69y7fupciqzr7x/furlithParams.html";
private String phone;
private String serviceProvider = "payu_paisa";
private String hash = "";
Handler mHandler = new Handler();
MyDatabaseHelper dbhhelper;
String ID;
String emailadress[];
String mobilenumber[];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// getWindow().requestFeature(Window.FEATURE_PROGRESS);
webView = new WebView(this);
setContentView(webView);
dbhhelper = new MyDatabaseHelper(PayUActvity.this);
SharedPreferences prefs = getSharedPreferences(
AppConstants.LOGIN_PREFS, Context.MODE_PRIVATE);
String coupanvalue = prefs.getString(AppConstants.COUPAN_Exit, "");
if (coupanvalue.equals("coupanexist"))
{
Bundle bundle = getIntent().getExtras();
amount = bundle.getString("finaltotatalamount");
SharedPreferences prefs1 = getSharedPreferences(
AppConstants.COUPAN_Exit, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs1.edit();
editor.clear();
editor.commit();
} else {
Bundle bundle = getIntent().getExtras();
amount = bundle.getString("totalpaybleamount");
}
try {
dbhhelper.open();
ID = prefs.getString("Member_id", "");
frstName = prefs.getString("username", "");
mobilenumber = dbhhelper.userMobilennumber(ID);
emailadress = dbhhelper.useremailadress(ID);
phone = mobilenumber[0];
emailId = emailadress[0];
} catch (NullPointerException e) {
e.printStackTrace();
}
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);
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 + "|" + frstName + "|" + 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(PayUActvity.this, "Oh no! " + description,
Toast.LENGTH_SHORT).show();
}
@Override
public void onReceivedSslError(WebView view,
SslErrorHandler handler, SslError error) {
// TODO Auto-generated method stub
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// Toast.makeText(PayUActvity.this, "Page Started! " + url,
// Toast.LENGTH_SHORT).show();
if (url.equals(SUCCESS_URL)) {
Toast.makeText(PayUActvity.this, "Success! ",
Toast.LENGTH_SHORT).show();
SharedPreferences prefs = getSharedPreferences(
AppConstants.PAYMENT_SUCESS, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(AppConstants.PAYMENT_SUCESS, "1");
editor.commit();
finish();
} else {
}
return super.shouldOverrideUrlLoading(view, url);
}
//
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
});
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(PayUActvity.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", frstName);
mapParams.put("email", emailId);
mapParams.put("phone", phone);
mapParams.put("productinfo", productInfo);
mapParams.put("surl", SUCCESS_URL);
mapParams.put("furl", FAILED_URL);
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;
}
});
}
}
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");
}
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();
}
}
这是我的 PayuPayment getaway 与 android 的集成,我能够进行支付,并且在成功支付后重定向到成功 URL,同时我想完成 Activity 并返回上一个 Activity 并保存共享值 1 请每次都帮助我重定向到成功 URl。
最佳答案
因为你没有重写 onPageStarted 方法,你可以这样试试,
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
if (url.equals(SUCCESS_URL)) {
Toast.makeText(PayUActvity.this, "Success! ",
Toast.LENGTH_SHORT).show();
SharedPreferences prefs = getSharedPreferences(
AppConstants.PAYMENT_SUCESS, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(AppConstants.PAYMENT_SUCESS, "1");
editor.commit();
finish();
} else {
Toast.makeText(PayUActvity.this, "Something Wrong! ",
Toast.LENGTH_SHORT).show();
}
}
关于javascript - 一旦响应重定向到带有android的Payu paymentgetway中的成功URL,如何完成actvity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758896/
我在编译最新的 payU 库时遇到问题。我为我的项目使用编译选项: compileOptions { sourceCompatibility JavaVersion.VERSION_1_8
我正在尝试通过 Visual Studio 解决方案添加 PayU Web 服务 Url(在 PayU 集成文档中给出)的 Web 服务引用。但无法检索任何服务。 测试服务器 网络服务网址 https
我是 iOS 和 Android 的新手。任何人都可以帮助我将 PayU native SDK 与 iOS 和 Android 应用程序集成吗?这个应用不是原生的,它使用 HTML/CSS 的东西。
尝试付款时,出现以下错误。请帮助我,我已经尝试了一切。设想:转到信用卡/借记卡。然后输入测试凭据 (CREDIT CARD)。然后它将停留在显示“我们正在处理您的交易”的屏幕上。并且日志显示 05-2
我正在开发 电子商务用于销售实物商品的应用程序。所以我需要一个支付网关。但我的公司只有 PayU 支付网关帐户。我的问题是它适用于移动应用程序吗? 最佳答案 是的,我已经在 Android 应用程序中
如何将 PayU 支付网关与 PhoneGap 应用程序集成? 正确的做法是什么? 如果是Android 为android添加cordova平台后,将其导出到eclipse中,从payu androi
我想从订单表中统计 cashondelivery、paypal、payu、ccavenue 的总数。 订单表中有 payment_method 列。该栏中有多种付款方式。 我想计算有多少笔付款是通过
当我在测试环境中使用 Pay U Money SDKUI 时,一切正常。但是,当我在生产环境中使用相同的 SDKUI 时,出现错误 (5014):Value
我正在尝试将 payU 支付网关与我的电子商务应用程序集成。我在 test payU 上有一个帐户带有商家 ID、 key 和盐。 我正在研究这个 demo application ,每当我更改参数时
我是 swift 的新手 任何人都可以帮助我在 swift 中集成 PayU Money ....我正在使用这个 sdk:https://github.com/payu-intrepos/Docume
我正在尝试集成 payu 支付网关,我已经包含了所有必填字段,但在重定向到 payu 的官方网站后显示错误。 Error. We are sorry we are unable to process
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 5 年前。 Improve th
我不希望在 Android 应用程序的付款结帐期间出现 payU money 登录/注册屏幕,如果有人做过,请分享您的知识,如何绕过注册或登录屏幕,直接允许客户付款使用信用卡/借记卡或网上银行。欢迎提
Working on Xcode 7.1, Swift 2.0 我在 Swift 上工作,目前正在尝试将 PayU Money 支付集成到 iOS 应用程序中 (following this docu
我是支付网关的新手。目前,我正在开发一个移动应用程序,我需要在 Android 应用程序中集成 PayU 支付网关。 到目前为止,我已经为 TEST url 创建了一个代码,当我运行我的应用程序时,我
请帮助我如何设置或呈现成功 url 到我的 ionic 应用程序。 当我将 PayU 资金集成到 Ionic 应用程序时,它在完成付款后需要成功 URL 和失败 URL,它会呈现为成功 URL,但它不
我正在使用 Laravel 5.1 开发一个网站,我需要设置一个购物车,我正在尝试为此安装 Omnipay,我选择了将使用的三个网关:Paypal、Stripe 和 PayU。我在composer.j
https://github.com/PayU/paytouch-ios我将 SDK 文件夹粘贴到我的项目中并创建了 Bridging-Header.h,其中导入了 #import "PUSDK.h"
我正在尝试使用 PayU 制作支付应用程序,但不知道如何将 JSON 数据发送到 PayU 服务器。我怎样才能做到这一点?请帮助我或给我一些建议。我应该将信息(来自下面的 body: {...})传递
我想在我的 IONIC Cordova 应用程序中集成 PayU Money 支付网关。我从 PayU 团队那里得到了文档。有提到一个post api需要调用。但问题是,POST API 的正确 JS
我是一名优秀的程序员,十分优秀!