1

我需要将 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 可以正确识别不正确的凭据尝试。

4

1 回答 1

1

显然 PayPal 登录窗口中存在错误。当 PayPal 登录中的密码字段包含“&”字符时,将显示 INTERNAL_SERVER_ERROR 消息(无论凭据是否正确):

02-09 14:34:01.171: E/RequestError(6618): 500 http response received.  Response not parsable.
02-09 14:34:01.171: E/PayPalService(6618): INTERNAL_SERVER_ERROR
02-09 14:34:01.341: E/LoginActivity(6618): login error: INTERNAL_SERVER_ERROR

如果密码中没有“&”字符且凭据不正确,则日志中会显示有效的错误消息:

02-09 14:33:48.741: E/RequestError(6618): , Mobile Login failed.
02-09 14:33:48.746: E/PayPalService(6618): 10803
02-09 14:33:49.206: E/LoginActivity(6618): login error: 10803

我的密码包含“&”字符。当我将密码更改为不包含它时,我能够登录。

在PayPal Android SDK GitHub 页面上关注全文。

于 2014-02-09T13:43:47.183 回答