2013-04-30 6 views
9

PayPal Mobile Payment Libraryを使用して、アンドロイドアプリから旅費を支払うようにしています。PayPalモバイル支払いライブラリからユーザー名、電話番号、メールアドレスを取得する方法

PayPalボタンを使用してPayをクリックすると、ログイン画面が表示されます。ユーザーがログインすると、支払いが正常に実行されます。これはすべて私のアプリのためにうまく動作します。私が必要とするのは、ユーザーがonActivityResultコードで支払いを完了/キャンセルした後にユーザーの詳細を取得することです。彼は、ログインした後、ペイパルからユーザーの詳細情報を取得するための別の方法があるかどう

残念ながらそれは私のPayPalアカウントからの詳細を取得しない、以下の私のコードを参照してくださいので、私は思ったんだけどしてください。

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

私は何をすることは、その後ここでトランザクション をキャンセルすると、私はその後、私は再び支払いページに移動し、上をクリックし、[次へ]をクリックし、その後、私のアプリに戻っクリック

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 

を得ることをログで、私がログインしていることですPaypalボタンでもう一度お支払いください。今回はすでにログインしている場合は、取引をキャンセルします。

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

任意のヘルプ誰ですか? –

答えて

3

この時点では、電子メール、名前、電話などの支払人情報を取得することはできません。また、payPal.setAccountEmail( "[email protected]")などの対応する設定メソッドがあることに気付くかもしれません。すでにこれらの情報がある場合は、PayPalダイアログに支払人情報をあらかじめ入力するように設計されています。

ただし、支払いが処理されたときに、PayPal IPN(即時支払い通知)を使用してPayPalシステムからコールバックすることができます。 IPNメッセージから、支払人情報を抽出することができます。 Pay Keyを使用して、IPNメッセージから支払人を識別します。また、PayPalアクティビティを呼び出すときにPayPalAdvancedPaymentオブジェクトを渡す必要があります。このドキュメントをチェックアウトしてください、PayPal Mobile implementation guide

呼び出す手順は、次のように:

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

ご協力ありがとうございます。しかし、私はユーザーにPayPal経由でログインさせたいので、PayPalの詳細、つまりFacebookログイン、Twitterログインなどが必要になります。問題は、PayPalがhttps://www.x.com/developersにアクセスするかどうかわかりません。/paypal/products/login-with-paypalは実際にPayPal Mobile Payment Libraryボタンで動作します。つまり、PayPal MPLセッションにもログインしているかどうかにかかわらず、ユーザーがPayPalアクセスでログインしたかどうかわかりません、もしそうでないなら、私には役に立たない。もっと説明したい場合は教えてください –

+2

はい、PayPalがOAuth2標準を提供しているので、PayPalのユーザープロフィール情報を取得できます。まず、PayPalログインを介してユーザーにログインし、認証トークンを生成する必要があります。有効な認証トークンを受け取ったら、ユーザーが自分のプロフィールデータ(https://identity.x.com/xidentity/resources/profile/me)にアクセスすることが許可されている場合、ユーザープロフィールデータを呼び出すことができます。OAuthログイン手順中にプロファイルアクセス許可が与えられます。手続きはFacebook、Googleまたはその他のOAuth2標準に似ています –

3

チェックこの(OAuthの): https://developer.paypal.com/webapps/developer/docs/integration/direct/log-in-with-paypal/#getStart

と、この:https://developer.paypal.com/webapps/developer/docs/integration/direct/log-in-with-paypal/detailed/

使用HttpClientWebViewを認証し、さらに進んでください - WebFrameはこのアプリケーションのために少し複雑かもしれませんが、それは私がすぐに考えることができることです - あなたが他のOAuを使用しない限り番目のプロバイダのアプリケーションライブラリ

も参照してください

- http://developer.android.com/reference/android/webkit/WebView.html

+1

便利な情報ですが、質問はPayPal Mobile Payment Libraryを使用してこれらの情報を取得する方法でした –

+1

MPLはID管理ツールではありません。むしろ処理支払いに役立ちます。詳細を取得し、それらを一緒にステッチするためにPayPal OAuthを使用してください。 – CKmum

関連する問題