2012-08-07 125 views
1

enter image description herePayPal集成登錄失敗錯誤?

這是我的主要活動類:

package your.in.paypal; 

import java.math.BigDecimal; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.view.ViewGroup.LayoutParams; 
import android.widget.LinearLayout; 

import com.paypal.android.MEP.CheckoutButton; 
import com.paypal.android.MEP.PayPal; 
import com.paypal.android.MEP.PayPalActivity; 
import com.paypal.android.MEP.PayPalPayment; 

public class SimplePayPalIntegration extends Activity implements OnClickListener { 
private ViewGroup content; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    invokeSimplePayment(); 
} 

private void invokeSimplePayment(){ 

    try{ 


     PayPal pp = PayPal.getInstance(); 

     if(pp==null) 

     pp = PayPal.initWithAppID(this, "APP-80W284485P519543T", PayPal.ENV_SANDBOX); 

     LinearLayout layoutSimplePayment = new LinearLayout(this); 

     layoutSimplePayment.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 

     layoutSimplePayment.setOrientation(LinearLayout.VERTICAL); 

     CheckoutButton launchSimplePayment = pp.getCheckoutButton(this, PayPal.BUTTON_194x37, CheckoutButton.TEXT_PAY); 

     launchSimplePayment.setOnClickListener(this); 

     layoutSimplePayment.addView(launchSimplePayment); 

     setContentView(layoutSimplePayment); 


    }catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
} 

    @Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     switch(resultCode) { 

      case Activity.RESULT_OK: 

       Log.d("", "RESULT_OK"); 
       break; 

      case Activity.RESULT_CANCELED: 
       Log.d("", "RESULT_CANCELED"); 
       break; 

      case PayPalActivity.RESULT_FAILURE: 
       Log.d("", "RESULT_FAILURE"); 
       break; 
     } 
} 

    @Override 
    public void onClick(View v) { 

     PayPalPayment payment = new PayPalPayment(); 

     payment.setSubtotal(new BigDecimal("8.25")); 

     payment.setCurrencyType("USD"); 

     payment.setRecipient("[email protected]"); 

     payment.setPaymentType(PayPal.PAYMENT_TYPE_GOODS); 

     Intent checkoutIntent = PayPal.getInstance().checkout(payment, this); 

     startActivityForResult(checkoutIntent, 1); 

     Log.d("", "clicked"); 

    } 
} 

這是我AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="your.in.paypal" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk android:minSdkVersion="8" /> 

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 


<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".SimplePayPalIntegration" 

    android:configChanges="keyboardHidden|orientation"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
     <activity android:name="com.paypal.android.MEP.PayPalActivity" 
       android:theme="@android:style/Theme.Translucent.NoTitleBar" 
       android:configChanges="keyboardHidden|orientation"/> 
</application> 

,我已經添加的PayPal_MPL.jar到項目中。當我運行項目時,我成功地進入了PayPal按鈕,當我點擊按鈕時,我得到登錄頁面,但是當我輸入沙箱登錄ID和密碼時,我得到錯誤Login failed. Please try again.爲什麼? 請告訴我我做錯了什麼。

+0

首先,只需嘗試登錄網站。檢查其正確與否。 – Praveenkumar 2012-08-07 14:04:54

+1

我成功登錄了該網站,但在項目中出現錯誤。 – Priyanka 2012-08-07 14:08:51

+0

代碼中是否有任何錯誤? – Priyanka 2012-08-07 14:20:56

回答

3

問題是,您正試圖在沙箱模式下進行實際付款。 PayPal只允許您在他們的實時服務器上進行實際付款(在他們有機會審查並批准您的應用程序之後)。在X.com註冊並在您準備好嘗試付款時提交您的應用程序。或者,您可以通過貝寶網站設置沙箱帳戶。

+0

@ Jason-謝謝,我會嘗試你建議我的。 – Priyanka 2012-08-17 13:46:08

0

您需要訪問https://www.sandbox.paypal.com並創建一個帳戶,以便您可以在沙箱模式下使用它。我得到的信息完全相同,「登錄失敗,請重試。」註冊我的沙盒帳戶後,我可以成功進行測試,並且您不必擔心從真實帳戶中花錢。