2013-04-30 16 views
9

Używam PayPal Mobile Payment Library, aby użytkownicy płacili za przejazdy z mojej aplikacji na Androida.Jak uzyskać nazwę użytkownika, numer telefonu i adres e-mail z PayPal Mobile Payment Library

Po kliknięciu przycisku Zapłać przy użyciu przycisku Paypal pojawia się ekran logowania, po zalogowaniu się jest w stanie dokonać płatności. To wszystko działa dobrze dla mojej aplikacji. Wszystko, czego potrzebuję, to uzyskać dane użytkownika po zakończeniu przez użytkownika/anulowaniu płatności w kodzie onActivityResult.

proszę zobaczyć mojego kodu poniżej, niestety nie dostać mi szczegóły z konta PayPal, więc zastanawiam się, czy istnieje inny sposób, aby uzyskać dane użytkownika z paypal po loguje się on w.

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     switch (requestCode) 
     { 
      case PAYPAL_REQUESTCODE: 
      { 
       Log.w("tag","jemail#"+ PayPal.getInstance().getAccountEmail()); 
       Log.w("tag","jname#"+ PayPal.getInstance().getAccountName()); 
       Log.w("tag","jphone#"+ PayPal.getInstance().getAccountPhone()); 
       Log.w("tag","jdialcode#"+ PayPal.getInstance().getAccountCountryDialingCode()); 

       switch(resultCode) 
       { 
        case Activity.RESULT_OK: 
        { 
         String payKey = data.getStringExtra(PayPalActivity.EXTRA_PAY_KEY); 

          Log.d("tag", "PayPal payment succeeded"); 
          Log.d("tag", "PayPal payKey: " + payKey); 

Co zrobić, jest to, że mogę się zalogować, a następnie anulować transakcję Oto Log że dostanę

04-30 12:30:19.672: W/tag(24697): jemail# 
04-30 12:30:19.672: W/tag(24697): jname# 
04-30 12:30:19.672: W/tag(24697): jphone#+44 
04-30 12:30:19.672: W/tag(24697): jdialcode#44 

potem kliknij z powrotem w mojej aplikacji, a następnie kliknij przycisk Dalej, aby przejść do strony płatności ponownie, a następnie kliknij ponownie naciśnij przycisk paypal, tym razem chciałbym być już zalogowany, potem anulować transakcję

04-30 12:30:43.878: W/tag(24697): jemail# 
04-30 12:30:43.878: W/tag(24697): jname#H.O.P.E 
04-30 12:30:43.878: W/tag(24697): jphone#+44 
04-30 12:30:43.878: W/tag(24697): jdialcode#44 
+0

każda pomoc kogoś? –

Odpowiedz

3

Nie można uzyskać informacji płatnika, takich jak e-mail, imię i nazwisko oraz telefon etc w tym momencie. Możesz również zauważyć, że istnieją odpowiednie metody ustawiania, takie jak payPal.setAccountEmail ("[email protected]"). Zostały one zaprojektowane, aby wstępnie wypełnić okno dialogowe PayPal z informacjami o płatniku, jeśli masz już te informacje.

Możesz jednak skorzystać z IPN PayPal (Błyskawiczne powiadamianie o płatności), aby oddzwonić z systemu PayPal po przetworzeniu płatności. Z wiadomości IPN można wyodrębnić informacje o płatniku. Użyj Pay Key, aby zidentyfikować płatnika z komunikatu IPN. Ponadto należy przekazać obiekt PayPalAdvancedPayment podczas wywoływania działania PayPal. Proszę sprawdzić ten dokument, PayPal Mobile implementation guide

procedury wywołującej następująco:

PayPalAdvancedPayment payment = new PayPalAdvancedPayment(); 
    payment.setIpnUrl("http://server/test"); 
    payment.setReceivers... // Receiver objects 
    PayPal.getInstance().checkout(payment, this.getBaseContext()); 
+0

Dzięki za pomoc. Jednak chcę, aby użytkownicy logowali się przez PayPal, a ja bym wtedy miał ich dane z PayPala, tj. Jak login na Facebooku, logowanie na Twitterze itp. Problem polega na tym, że nie wiem, czy PayPal ma dostęp do https://www.x.com/developers/paypal/products/login-with-paypal będzie działał z przyciskiem PayPal Mobile Library Library, tzn. nie wiem, czy użytkownik loguje się przez PayPal, czy będzie zalogowany do sesji MPL PayPal, czy nie , bo jeśli nie, to bezużyteczny dla mnie. Proszę powiedzieć, czy chcesz wyjaśnić więcej. –

+2

Tak, możesz pobrać informacje o profilu użytkownika PayPal, ponieważ PayPal zapewnia standard OAuth2. Najpierw musisz zalogować użytkownika za pomocą logowania PayPal i wygenerować token uwierzytelniania. Po otrzymaniu ważnego tokena uwierzytelniania możesz zadzwonić do danych profilu użytkownika, jeśli użytkownik zezwolił aplikacji na dostęp do ich danych profilu (https://identity.x.com/xidentity/resources/profile/me).Uprawnienia dostępu do profilu są przyznawane podczas procedury logowania OAuth. Procedura jest podobna do Facebooka, Google lub innego standardu OAuth2. –

3

Sprawdź to (OAuth): https://developer.paypal.com/webapps/developer/docs/integration/direct/log-in-with-paypal/#getStart

a to: https://developer.paypal.com/webapps/developer/docs/integration/direct/log-in-with-paypal/detailed/

Zastosowanie HttpClient i WebView do uwierzytelniania i kontynuuj dalej - WebFrame może być nieco skomplikowana dla tej aplikacji, ale to jedyna rzecz, o której mogę pomyśleć od razu - chyba że korzystasz z innych OAu biblioteki aplikacji TH dostawców takich

patrz także - http://developer.android.com/reference/android/webkit/WebView.html

+1

Przydatne informacje, ale pytanie było jak uzyskać te informacje za pomocą PayPal Mobile Payment Library –

+1

MPL nie jest narzędziem do zarządzania tożsamością; raczej pomaga w przetwarzaniu płatności. skorzystaj z PayPal OAuth, aby uzyskać szczegółowe informacje i połączyć je razem. – CKmum