我需要将 PayPal 与我的 Android 应用程序集成。ENVIRONMENT_NO_NETWORK使用工作正常的付款测试。但是,当我使用“生产”时,当我尝试登录并付款时,出现“登录失败。系统错误。请稍后再试”。这个问题是一致的。我已经看到了有关此问题的多个帖子,但是,我仍然无法弄清楚如何使其工作。
我正在使用最新的 PayPal Android SDK 版本(我认为版本 1.2.5,从 PayPal-Android-SDK Git 判断)。
首先,我启动服务:
Intent intent = new Intent(this, PayPalService.class);
intent.putExtra(PaymentActivity.EXTRA_PAYPAL_ENVIRONMENT, PaymentActivity.ENVIRONMENT_PRODUCTION);
intent.putExtra(PaymentActivity.EXTRA_CLIENT_ID, getString(R.string.paypal_clientid));
startService(intent);
然后我付款
PayPalPayment payment = new PayPalPayment(new BigDecimal("2.00"), "USD", "my payment");
Intent intent = new Intent(this, PaymentActivity.class);
intent.putExtra(PaymentActivity.EXTRA_PAYPAL_ENVIRONMENT, PaymentActivity.ENVIRONMENT_PRODUCTION);
intent.putExtra(PaymentActivity.EXTRA_CLIENT_ID, getString(R.string.paypal_clientid));
intent.putExtra(PaymentActivity.EXTRA_PAYER_ID, userEmail);
intent.putExtra(PaymentActivity.EXTRA_RECEIVER_EMAIL, getString(R.string.paypal_email));
intent.putExtra(PaymentActivity.EXTRA_PAYMENT, payment);
startActivityForResult(intent, 0);
我使用应用程序信息中“实时凭据”部分的客户端 ID。我不在任何地方使用“秘密”。
如果这有什么不同,我还禁用了 card.io 卡扫描。
当我尝试付款时,我可以看到 PayPal 订单屏幕。我点击“使用 PayPal 支付”。我输入我的个人 PayPal 电子邮件地址和密码(这是一个单独的 PayPal 帐户,与应用程序无关),然后单击“登录”。但随后我收到一个对话框,提示“登录失败。系统错误。请稍后再试”。我在日志中看到以下消息:
02-04 10:37:07.827: E/RequestError(24963): 500 http response received. Response not parsable.
02-04 10:37:07.832: E/PayPalService(24963): INTERNAL_SERVER_ERROR
02-04 10:37:07.927: E/LoginActivity(24963): login error: INTERNAL_SERVER_ERROR
我正在使用的 PayPal 帐户(创建应用程序的地方)已添加信用卡并已通过验证。
UPD 作为比较,我可以使用创建 PayPal 应用程序的同一电子邮件成功登录。但是,如果我使用创建 PayPal 应用程序的同一电子邮件,但提供了错误的密码,我也会收到“登录失败。系统错误。请稍后再试”,但这次我在日志中看到以下消息:
02-06 10:42:00.715: E/RequestError(14165): , Mobile Login failed.
02-06 10:42:00.715: E/PayPalService(14165): 10803
02-06 10:42:00.830: E/LoginActivity(14165): login error: 10803
请注意,在这种情况下,PayPal 可以正确识别不正确的凭据尝试。