Paypal Zahlung: Wie man Erfolgsanforderung beim Laden des Paypal in Webview bekommen kann

Bearbeiten:

Nach Paypal Login, konnte ich erfolgreich abgeschlossen Transaktion. Aber ich muss mit dem Erfolg in paypal übereinstimmen , um zu überprüfen, sowohl url ist gleich und dann zeigen erfolgreiche Toast Nachricht.

  • Wie kann ich den MIME-Dateityp in Android bestimmen?
  • Gibt es eine Möglichkeit, Web-Konsolenfehler zu fangen?
  • Die Anzahl der Methodenreferenzen in einer .dex-Datei darf 64k API 17 nicht überschreiten
  • CollapsingToolbarLayout-Titel als gemeinsamer Elementübergang
  • Installation fehlgeschlagen mit Nachricht Ungültige Datei
  • Android Lollipop Navigationsleiste überlagert Aktivitätsansicht
  • Aber ich bin nicht immer Erfolg url von payment.So kann ich nicht mit ihm.Below ich habe den entsprechenden Code gepostet:

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

    Manifest:

     <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" /> 

    Überprüfe diese Diskussion. Schritt von Schritt Ich stelle Screenshots und fügte Inhalt für klares Verständnis hinzu.

    Ich bekomme diese Fehlermeldung.So kann nicht in der Lage, Erfolg zu erfüllen:

    06-15 18: 12: 59.894: I / Chrom (3273): [INFO: CONSOLE (0)] "Gemischter Inhalt: Die Seite bei ' https://www.sandbox.paypal.com/us/cgi-bin/ webscr? session = LTy9Q59% 5fia3wiAdHTQjgQxvUF1BTzLjgXgelCew4AS% 2dGAutAfB5WjZXVuX8 & Dispatch = 5885d80a13c0db1f8e263663d3faee8dcce3e160f5b9538489e17951d2c62172 ‚wurde über eine sichere Verbindung geladen, enthält jedoch eine Form , die einen unsicheren Endpunkt Ziele‘ http://www.myapi-entertainment.com/page_managements/page_featured_subscription_payment_success/4 . Dieser Gehalt soll auch über HTTPS eingereicht werden. https://www.sandbox.paypal.com/us/cgi-bin/webscr?SESSION=LTy9Q59%5fia3wiAdHTQjgQxvUF1BTzLjgXgelCew4AS%2dGAutAfB5WjZXVuX8&dispatch=5885d80a13c0db1f8e263663d3faee8dcce3e160f5b9538489e17951d2c62172 (0)

    Dies ist meine Erfolgsreaktion " http://www.myapi-entertainment.com/page_managements/page_featured_subscription_payment_success/4 " -> Geänderter Servername.

    Ist es möglich, erfolgreiche anfrage mit paypal zu erfüllen Wenn ich irgendwelche Vorschläge bekomme, wird es mir hilfreich sein.

  • Android Spinner: Holen Sie sich das ausgewählte Element ändern Ereignis
  • Crosswalk Cordova - js alert zeigt Blockzeichen auf der chinesischen Schnittstelle android
  • Wie ändere ich die Nachricht (Körper) von AlertDialog in onPrepareDialog ()?
  • Skalierung Problem auf Android - warum ist das Bild so ungeschickt?
  • Caching von Dateien mit getCacheDir ()
  • Hintergrundmusik Android
  • 5 Solutions collect form web for “Paypal Zahlung: Wie man Erfolgsanforderung beim Laden des Paypal in Webview bekommen kann”

    Was ich mit Ihrer Abfrage verstehe, ist, Sie haben eine URL Ihrer Website, die die Zahlung mit Paypal durchführt, und in der Mobile App, die Sie das gleiche mit dem Webview (nicht Paypal SDK) durchführen.

    Ja , du kannst den callback indem du bei deinem WEB-Ende eine Codierung machst.

    Bedeutung:

    Wann immer ein Benutzer auf die Zahlungsseite navigiert, dann muss Ihr Server wissen, ob der Benutzer von der Website oder über Mobile Webview besucht hat, kann Server einen additional parameter key an ein beliebiges Zahlungsgateway für seine benutzerdefinierte Logik senden. Später, sobald die Zahlungsabwicklung abgeschlossen ist, gibt das Zahlungs-Gateway denselben additional parameter key zusammen mit dem Ergebnis (Erfolg oder Ausfall) zurück.

    Hinweis: Jedes Payment Gateway hat eine Einstellung der Redirection url for Success/Failure

    Sobald Paypal umgeleitet wird, um die URL zurückzugeben (Success / Failure), nachdem die Transaktion abgeschlossen ist, überprüfen Sie dann erneut, ob die Anfrage von der Website oder von Mobile Webview mit Hilfe eines additional parameter key . Check Fall unten …

    Wenn aus Mobile Webview

    • Erfolg: www.myserver.com/success zur URL www.myserver.com/success
    • Fehler: www.myserver.com/failure an URL www.myserver.com/failure

    Wenn aus Webiew dann Normal flow

    Jetzt in deinem Mobile-Webview

     webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) if(url.equalsIgnoreCase("www.myserver.com/success")) //Success Toast else if(url.equalsIgnoreCase("www.myserver.com/failure")) //Failure Toast return true; } }); 

    Das ist es.

    Paypal gibt json Antwort nach erfolgreicher Zahlung wie unten zurück

     { "client": { "environment": "sandbox", "paypal_sdk_version": "2.14.1", "platform": "Android", "product_name": "PayPal-Android-SDK" }, "response": { "create_time": "2016-06-15T11:38:04Z", "id": "PAY-6CN54299U76194116K5QT4BY", "intent": "sale", "state": "approved" }, "response_type": "payment" } 

    Sie müssen das Antwort-Json-Objekt überprüfen. Wenn Staat genehmigt ist, bedeutet Paypal Zahlung erfolgreich. Dann können Sie auf Paypal Website für aktuelle Transaktionen zu überprüfen.

    private static final int REQUEST_CODE_PAYMENT = 1; private static String CONFIG_ENVIRONMENT=PayPalConfiguration.ENVIRONMENT_SANDBOX; Sie sicher, dass Sie folgende Schritte befolgt haben: 1) private static final int REQUEST_CODE_PAYMENT = 1; private static String CONFIG_ENVIRONMENT=PayPalConfiguration.ENVIRONMENT_SANDBOX; private static final int REQUEST_CODE_PAYMENT = 1; private static String CONFIG_ENVIRONMENT=PayPalConfiguration.ENVIRONMENT_SANDBOX; // Es wird PayPalConfiguration.ENVIRONMENT_PRODUCTION für den Live-Modus sein. 2)

     // note that these credentials will differ between live & sandbox environments. private static final String CONFIG_CLIENT_ID = "ATBvU5urlaPOhpCrAhFsoG4u63RvNoKUocFPs9yR5q_sbM0yecZawUjoJhIilW8DNg5RrJcRHgRuEP_1"; private static PayPalConfiguration config = new PayPalConfiguration() .environment(CONFIG_ENVIRONMENT) .clientId(CONFIG_CLIENT_ID) // The following are only used in PayPalFuturePaymentActivity. .merchantName("Example Merchant") .merchantPrivacyPolicyUri(Uri.parse("https://www.example.com/privacy")) .merchantUserAgreementUri(Uri.parse("https://www.example.com/legal")); Intent intent = new Intent(getActivity(), PayPalService.class); intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config); getActivity().startService(intent); 

    Bearbeiten

    Es scheint von den Screenshots, dass du eine Subskriptionsseite in deine Webansicht einbindest und versuchst, mit der Rücksende-URL erfolgreich zu sein.

    1. Überprüfen Sie die Antwort in diesem Beitrag , um die Retrun-URL zuerst in Ihrem Profil einzurichten

    2. Erhalte die URL String webUrl = webView.getUrl(); Wenn du mit der definierten successUrl Match / Verifikation machen successUrl

    Wie oben erwähnt,

    Du musst das Antwort-Jordobjekt überprüfen. Wenn Staat ist genehmigt, dass Paypal Zahlung ist erfolgreich.Sie können Sie auf Paypal Website für aktuelle Transaktionen zu überprüfen bedeutet

    Ich bekomme eine Zahlung Erfolg oder Misserfolg Anfrage mit diesem unten Codes:

     private void loadWebViewPaypal() { payUrlStr = LOAD_WEBVIEW_PAYMENT_PAYPAL(PAGE_ID); Log.e("payUrlStr", "" + payUrlStr); webView = (WebView) findViewById(R.id.webView); webView.setWebViewClient(new WebClient()); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl(payUrlStr); @SuppressWarnings("unused") WebSettings settings= webView.getSettings(); if (Build.VERSION.SDK_INT >= 21) { webView.getSettings().setMixedContentMode( WebSettings.MIXED_CONTENT_ALWAYS_ALLOW ); } } public class WebClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { Log.e("Page Started", ""+url); super.onPageStarted(view, url, favicon); if(url.contains(successUrl)) { Log.e("Getting Success Request", "Test"); Intent i = new Intent(PaypalWebActivity.this, TabhostActivity.class); PAYPAL_WEB_BACK = "fulfilled"; startActivity(i); finish(); } else if(url.equalsIgnoreCase(failureUrl)) { Intent i = new Intent(PaypalWebActivity.this, TabhostActivity.class); PAYPAL_WEB_BACK = "fulfilled"; startActivity(i); finish(); } } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Log.e("Override Url", ""+url); view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub super.onPageFinished(view, url); Log.e("Finished Url :", "" + url); if(dialog.isShowing()){ dialog.dismiss(); } } } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.