2015-11-17 41 views
0

我使用下面的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:劃痕。我現在正在接受生產環境中的錯誤...給了什麼?

回答

1

對於這些連接錯誤,您最好的辦法是抓住日誌cat輸出,並尋找debug_id的錯誤消息,然後聯繫Merchant Support。他們可以查看後端發生的具體事情。

+0

謝謝你的幫助,我會給這個鏡頭。 –

+0

今天這些問題似乎已經解決了它自己,所以我打算將其標記爲正確的答案,因爲這似乎是一個只有商家支持才能闡明的問題。 –

相關問題