【发布时间】:2016-09-30 10:02:21
【问题描述】:
编辑:
paypal登录后,我可以成功完成交易。但是我需要匹配paypal中的successUrl来验证两个url是否相同,然后显示成功的toast消息。
但是我没有从付款中获得成功的url。所以我无法匹配它。下面我发布了相关代码:
WebActivity.java:
public class PaypalWebActivity extends Activity {
private WebView webView;
String payUrlStr;
ProgressDialog dialog;
String successUrl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.paypal_web_layout);
successUrl = LOAD_WEBVIEW_PAYMENT_PAYPAL_SUCCESS;
dialog = ProgressDialog.show(PaypalWebActivity.this, "", "Please wait..", false);
loadWebViewPaypal();
}
private void loadWebViewPaypal() {
payUrlStr = LOAD_WEBVIEW_PAYMENT_PAYPAL(PAGE_ID);
Log.e("payUrlStr", ""+payUrlStr);
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl(payUrlStr);
webView.getSettings().setJavaScriptEnabled(true);
@SuppressWarnings("unused")
WebSettings settings= webView.getSettings();
if (Build.VERSION.SDK_INT >= 21) {
webView.getSettings().setMixedContentMode( WebSettings.MIXED_CONTENT_ALWAYS_ALLOW );
}
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.e("Loading url...", url);
view.loadUrl(url);
String loadWebUrl = view.getUrl();
Log.e("loadWebUrl", ""+loadWebUrl);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
Log.e("Finished url...", url);
String webUrl = view.getUrl();
Log.e("webUrl", ""+webUrl);
if(webUrl.substring(0,95).equals(successUrl)){
Log.e("Getting Success Request", "Test");
}else{
Log.e("Failed to get Request", "Test");
}
if(dialog.isShowing()){
dialog.dismiss();
}
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
Log.e("Error in url...", description);
Log.e("Error in failingUrl...", failingUrl);
}
});
}
}
清单:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
检查这个discussion。我一步一步放截图并添加内容以便清楚理解。
我收到此错误消息。因此无法匹配成功请求:
06-15 18:12:59.894: I/chromium(3273): [INFO:CONSOLE(0)] "混合 内容:页面位于 'https://www.sandbox.paypal.com/us/cgi-bin/webscr?SESSION=LTy9Q59%5fia3wiAdHTQjgQxvUF1BTzLjgXgelCew4AS%2dGAutAfB5WjZXVuX8&dispatch=5885d80a13c0db1f8e263663d3faee8dcce24870f5b9de5368 通过安全连接加载,但包含一个针对 不安全的端点 'http://www.myapi-entertainment.com/page_managements/page_featured_subscription_payment_success/4。此内容也应通过 HTTPS 提交。 https://www.sandbox.paypal.com/us/cgi-bin/webscr?SESSION=LTy9Q59%5fia3wiAdHTQjgQxvUF1BTzLjgXgelCew4AS%2dGAutAfB5WjZXVuX8&dispatch=5885d80a13c0db1f8e263663d3faee8dcce3e160f5b9538489e17951d2c62172 (0)
这是我的成功响应“http://www.myapi-entertainment.com/page_managements/page_featured_subscription_payment_success/4”-> 已更改服务器名称。
是否可以将成功请求与贝宝匹配?如果我得到任何建议,这将对我有所帮助。
【问题讨论】:
-
我想你需要在运行时请求许可
-
请提供您的网页代码
payUrlStr,您是否集成了简单的支付按钮或PayPal Express API? -
@pp_pduan 我需要discuss。你能过来一下吗?
-
您能否在您的服务器上启用 https 并使用 https 成功响应 url
标签: android paypal paypal-sandbox