我使用下面的SDK:https://github.com/paypal/PayPal-Android-SDK貝寶Android SDK中的錯誤 「請求失敗,服務器響應:關閉」, 「SERVER_COMMUNICATION_ERROR」
我在AndroidManifext.xml有這樣的:
<!-- PayPal Android SDK start -->
<service android:name="com.paypal.android.sdk.payments.PayPalService"
android:exported="false" />
<activity android:name="com.paypal.android.sdk.payments.PaymentActivity" />
<activity android:name="com.paypal.android.sdk.payments.LoginActivity" />
<activity android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" />
<activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" />
<activity android:name="io.card.payment.CardIOActivity"
android:configChanges="keyboardHidden|orientation" />
<activity android:name="io.card.payment.DataEntryActivity" />
<!-- PayPal Android SDK end -->
在我的片段,我開始購買從我有下面的代碼(這是從SDK教程拍攝):
private static PayPalConfiguration paypal_config = new PayPalConfiguration()
// Start with mock environment. When ready, switch to sandbox (ENVIRONMENT_SANDBOX)
// or live (ENVIRONMENT_PRODUCTION)
.environment(PayPalConfiguration.ENVIRONMENT_SANDBOX)
.clientId("<--ID-->");
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
...
Intent intent = new Intent(getActivity(), PayPalService.class);
intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, paypal_config);
getActivity().startService(intent);
...
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme);
LayoutInflater inflater = LayoutInflater.from(getActivity());
View prompt = inflater.inflate(R.layout.purchase, null);
Button cancel_btn = (Button) prompt.findViewById(R.id.cancel);
Button purchase_btn = (Button) prompt.findViewById(R.id.purchase_button);
PayPalPayment payment = new PayPalPayment(new BigDecimal("1.75"), "USD", "sample item",
PayPalPayment.PAYMENT_INTENT_SALE);
Intent intent = new Intent(getActivity(), PaymentActivity.class);
// send the same configuration for restart resiliency
intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, paypal_config);
intent.putExtra(PaymentActivity.EXTRA_PAYMENT, payment);
startActivityForResult(intent, 0);
}
});
這是工作昨天全部和大部分的今天,但今天我收到了標題中所述的錯誤。我去了paypal的開發者門戶網站,我的帳戶沒有通知,我的應用/帳戶/用戶設置正確(自工作之前沒有任何變化,它在測試期間停止工作)。
有沒有人遇到過這個問題併成功解決了它?
編輯: 有一點信息:當貝寶視圖彈出時,它給了我一個錯誤彈出窗口標題:「再試一次」信息:「有問題與貝寶服務器通信,請再試一次。如果它點擊取消,它會回到我的應用程序的視圖。有時,當我點擊「再試一次」時,它會讓我通過付款和登錄按鈕,但是當我嘗試登錄時,它給我一個類似的錯誤,只有「好」作爲選項。
編輯2:擊中後「再試一次」好幾次我也收到此錯誤:
"E/paypal.sdk: request failed with server response:Socket is closed"
編輯3:另外,這些錯誤之前正確的,我總是收到此錯誤:
"E/ViewRootImpl: sendUserActionEvent() mView == null"
任何人都知道這是否是問題的原因?不太確定這是什麼意思,因爲視圖實際上可以正常加載,但之後服務器調用似乎存在問題。
編輯4:似乎可以正常使用ENVIRONMENT_PRODUCTION設置w/Production clientId。我嘗試刪除應用程序,使用不同的應用程序帳戶,甚至嘗試與另一個PayPal帳戶無濟於事。除非有遺漏的東西或PayPal限制我的測試帳戶,否則PayPal的服務器出現問題。希望有更多知識淵博的人士能夠進入並闡明這個問題,這樣其他人就不必在此浪費時間。
編輯5:劃痕。我現在正在接受生產環境中的錯誤...給了什麼?
謝謝你的幫助,我會給這個鏡頭。 –
今天這些問題似乎已經解決了它自己,所以我打算將其標記爲正確的答案,因爲這似乎是一個只有商家支持才能闡明的問題。 –