android - 如何从PayPal移动支付库获取用户名、电话和邮箱

标签 android android-intent paypal paypal-sandbox

我正在使用 Paypal Mobile Payment Library让用户通过我的 Android 应用为旅程付费。

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

请看下面我的代码,不幸的是它没有从 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

然后我在我的应用程序中点击返回,然后再次点击下一步进入支付页面,再次点击使用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

最佳答案

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

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

调用过程如下:

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

关于android - 如何从PayPal移动支付库获取用户名、电话和邮箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16298518/

相关文章:

android - 通过 USB 从一部安卓手机给另一部手机充电

android - 如何最好地从 Android ListView 中的 URL 加载图像

android - 如何覆盖相机 Activity 的 onBackPressed ?即 android.provider.MediaStore.ACTION_IMAGE_CAPTURE

java - Android Studio 通过不同的 Activity 计时

PayPal REST API 不采用自定义送货地址

paypal - 无需离开您的网站即可集成 Paypal 支票

android - 如何在 Kotlin 中将同一个 RecyclerView 适配器与 Activity 和 Fragment 一起使用?

java - 在 Fragment 中访问 getExternalCacheDir()

android - 在 Android 中将本地 html 文件加载到 Intent 的正确路径是什么?

paypal - 如何在沙盒上启用移动 Paypal 支付标准?