2013-04-30 25 views
9

Tôi đang sử dụng PayPal Mobile Payment Library để làm cho người dùng thanh toán cho các chuyến đi từ ứng dụng Android của tôi.Cách nhận tên người dùng, điện thoại và email từ Thư viện thanh toán di động PayPal

Khi người dùng nhấp vào nút Thanh toán bằng Paypal, màn hình đăng nhập sẽ hiển thị khi người dùng đăng nhập, họ có thể thực hiện thanh toán thành công. Đây là tất cả các công trình tốt cho ứng dụng của tôi. Tất cả những gì tôi cần là lấy chi tiết người dùng sau khi người dùng đã hoàn tất/hủy thanh toán trong mã onActivityResult.

Xin vui lòng xem mã của tôi dưới đây, tiếc là nó không làm cho tôi các chi tiết từ tài khoản paypal, vì vậy tôi tự hỏi nếu có một phương pháp để có được thông tin chi tiết người dùng từ paypal sau khi đăng nhập vào.

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

những gì tôi làm là tôi đăng nhập, sau đó hủy giao dịch đây là Log mà tôi nhận được

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 

sau đó, tôi bấm trở lại trong ứng dụng của tôi, sau đó nhấn tiếp theo để đi đến trang thanh toán một lần nữa, và click vào trả tiền bằng nút paypal một lần nữa, lần này tôi sẽ đã được đăng nhập, sau đó tôi hủy giao dịch

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

giúp đỡ bất kỳ ai? –

Trả lời

3

Bạn không thể nhận thông tin về người thanh toán như email, tên và điện thoại, v.v. Bạn cũng có thể nhận thấy rằng có các phương thức thiết lập tương ứng như payPal.setAccountEmail ("[email protected]"). Chúng được thiết kế để điền trước hộp thoại PayPal với thông tin người trả tiền nếu bạn đã có những thông tin này.

Tuy nhiên, bạn có thể sử dụng PayPal IPN (Thông báo thanh toán tức thì) để nhận lại cuộc gọi từ hệ thống PayPal khi thanh toán đã được xử lý. Từ thông báo IPN, bạn có thể trích xuất thông tin người trả tiền. Sử dụng phím trả tiền để xác định người thanh toán từ tin nhắn IPN. Ngoài ra, bạn phải chuyển đối tượng PayPalAdvancedPayment trong khi gọi PayPal Activity. Xin hãy kiểm tra tài liệu này, PayPal Mobile implementation guide

thủ tục kêu gọi như sau:

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

Cảm ơn sự giúp đỡ của bạn. Tuy nhiên, tôi muốn người dùng đăng nhập qua PayPal và sau đó tôi sẽ có thông tin chi tiết của họ từ PayPal, ví dụ như đăng nhập Facebook, đăng nhập Twitter, v.v. Vấn đề là tôi không biết nếu truy cập PayPal https://www.x.com/developers/paypal/products/login-with-paypal sẽ thực sự hoạt động với nút PayPal Mobile Payment Library, tức là tôi không biết liệu người dùng có đăng nhập thông qua truy cập PayPal hay không, liệu anh ta có đăng nhập vào phiên PayPal MPL hay không , nếu không, thì vô ích với tôi. Vui lòng cho tôi biết nếu bạn muốn giải thích thêm –

+2

Có, bạn có thể tìm nạp thông tin hồ sơ người dùng PayPal vì PayPal cung cấp tiêu chuẩn OAuth2. Trước tiên, bạn phải đăng nhập người dùng thông qua đăng nhập PayPal và tạo ra một mã thông báo xác thực. Khi bạn nhận được mã thông báo xác thực hợp lệ, bạn có thể gọi dữ liệu hồ sơ người dùng nếu người dùng cho phép ứng dụng của bạn truy cập dữ liệu hồ sơ của họ (https://identity.x.com/xidentity/resources/profile/me).Quyền truy cập tiểu sử được cấp trong quá trình đăng nhập OAuth. Quy trình tương tự như Facebook, Google hoặc tiêu chuẩn OAuth2 khác –

3

Kiểm tra này (OAuth): https://developer.paypal.com/webapps/developer/docs/integration/direct/log-in-with-paypal/#getStart

và điều này: https://developer.paypal.com/webapps/developer/docs/integration/direct/log-in-with-paypal/detailed/

Sử dụng HttpClientWebView để xác thực và tiến xa hơn - WebFrame có thể hơi phức tạp đối với ứng dụng này nhưng đó là điều duy nhất tôi có thể nghĩ ngay - trừ khi bạn sử dụng OAu khác thư viện ứng dụng của các nhà cung cấp thứ nhất

Đồng thời xem - http://developer.android.com/reference/android/webkit/WebView.html

+1

Thông tin hữu ích nhưng câu hỏi là cách lấy thông tin này bằng Thư viện thanh toán di động PayPal –

+1

MPL không phải là công cụ quản lý danh tính; thay vào đó nó giúp xử lý các khoản thanh toán. sử dụng PayPal OAuth để nhận chi tiết và ghép chúng lại với nhau. – CKmum