9

我正在使用 PayPal移动支付库让用户通过我的 Android 应用程序支付旅程费用。

当用户点击 Pay using Paypal 按钮时,会显示登录屏幕,当用户登录后,他就可以成功付款。这对我的应用程序来说一切正常。我需要的只是在用户在 onActivityResult 代码中完成/取消付款后获取用户详细信息。

请在下面查看我的代码,不幸的是它没有从贝宝帐户中获取详细信息,所以我想知道在他登录后是否有另一种方法可以从贝宝获取用户详细信息。

@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
4

2 回答 2

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 对于这个应用程序可能有点复杂,但这是我能马上想到的唯一事情 - 除非你使用其他 OAuth 提供者的应用程序库

另请参阅 - http://developer.android.com/reference/android/webkit/WebView.html

于 2013-05-07T20:19:44.927 回答
3

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

但是,您可以使用 PayPal IPN(即时付款通知)在付款处理完毕后从 PayPal 系统获得回电。您可以从 IPN 消息中提取付款人信息。使用 Pay Key 从 IPN 消息中识别付款人。此外,您必须在调用 PayPal 活动时传递 PayPalAdvancedPayment 对象。请查看此文档,PayPal Mobile 实施指南

调用过程如下:

    PayPalAdvancedPayment payment = new PayPalAdvancedPayment();
    payment.setIpnUrl("http://server/test");
    payment.setReceivers... // Receiver objects
    PayPal.getInstance().checkout(payment, this.getBaseContext());
于 2013-05-07T16:53:24.523 回答