Android 如何从PayPal移动支付库获取用户名、电话和电子邮件

Android 如何从PayPal移动支付库获取用户名、电话和电子邮件,android,android-intent,paypal,paypal-sandbox,Android,Android Intent,Paypal,Paypal Sandbox,我正在使用PayPal让用户从我的android应用程序支付旅行费用 当用户单击Paypal按钮支付时,登录屏幕显示,当用户登录时,他能够成功支付。这一切都适用于我的应用程序。我所需要的只是在用户完成/取消onActivityResult代码中的付款后获取用户详细信息 请看下面我的代码,不幸的是它没有从paypal帐户中获取详细信息,所以我想知道是否有其他方法可以在paypal登录后从paypal获取用户详细信息 @Override public void onActivityResul

我正在使用PayPal让用户从我的android应用程序支付旅行费用

当用户单击Paypal按钮支付时,登录屏幕显示,当用户登录时,他能够成功支付。这一切都适用于我的应用程序。我所需要的只是在用户完成/取消onActivityResult代码中的付款后获取用户详细信息

请看下面我的代码,不幸的是它没有从paypal帐户中获取详细信息,所以我想知道是否有其他方法可以在paypal登录后从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
然后我在我的应用程序中单击“上一步”,然后单击“下一步”再次转到付款页面,并再次单击“使用贝宝付款”按钮,这一次我将已经登录,然后我取消交易

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

此时您无法获取付款人信息,如电子邮件、姓名和电话等。您可能还注意到有相应的set方法,如payPal.setAccountEmail(“payer@xyz.com"). 它们被设计为预先填充PayPal对话框和付款人信息,如果你已经有这些信息

但是,您可以使用PayPal IPN(即时支付通知)在支付完成后从PayPal系统获得回拨。您可以从IPN消息中提取付款人信息。使用支付密钥从IPN消息中识别付款人。此外,在调用PayPal活动时,必须传递PayPalaAdvancedPayment对象。请查看此文档

调用过程如下:

    PayPalAdvancedPayment payment = new PayPalAdvancedPayment();
    payment.setIpnUrl("http://server/test");
    payment.setReceivers... // Receiver objects
    PayPal.getInstance().checkout(payment, this.getBaseContext());
选中此选项(OAuth):

这是:

使用
HttpClient
WebView
进行身份验证和进一步操作-此应用程序的WebFrame可能有点复杂,但这是我唯一能马上想到的-除非您使用其他OAuth提供商的应用程序库


另请参见-

谢谢您的帮助。但是,我想让用户通过PayPal登录,然后我会从PayPal获得他们的详细信息,如Facebook登录、Twitter登录等。问题是,我不知道PayPal access是否会使用PayPal Mobile Payment Library按钮,也就是说,我不知道用户是否通过PayPal access登录,他是否也会登录到PayPal MPL会话,因为如果没有,那么对我来说毫无用处。如果你想解释更多,请告诉我是的,你可以获取PayPal用户档案信息,因为PayPal提供OAuth2标准。首先,您必须通过PayPal登录用户并生成身份验证令牌。收到有效的身份验证令牌后,如果用户允许您的应用访问其配置文件数据(),则可以调用用户配置文件数据。在OAuth登录过程中授予配置文件访问权限。该程序类似于Facebook、Google或其他OAuth2标准有用信息,但问题是如何使用PayPal移动支付库获取这些信息MPL不是身份管理工具;相反,它有助于处理付款。使用PayPal OAuth获取详细信息并将它们缝合在一起。