我需要将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);
我使用应用程序信息中“Live Credentials”部分的客户端ID。我不在任何地方使用“秘密”。
如果这有任何不同,我也disabled card.io card scanning。
当我尝试付款时,我可以看到PayPal订单屏幕。我点击“Pay with 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会正确识别不正确的凭据尝试。
答案 0 :(得分: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 page的完整故事。