2013-05-16 61 views
4

我想將貝寶集成到我的應用程序中。我接近到達那裏,直到我看到這個:https://developer.paypal.com/webapps/developer/support/faq#non-US-dev 貝寶不允許非美國開發人員使用REST API。所以我留下的選擇是經典的api。這就是問題出現的地方,我不知道如何使用它們。如何使用webview將paypal集成到Android應用程序

我打算使用NVP api。我不知道如何去做,但下面是我計劃要做的流程圖。我需要在checkout.java上設置項目編號,描述,價格等,這將發送到www.domain.com/setsessions.php

我不確定它是否會工作。但即使可以,我也不知道新的'意圖'如何檢測用戶是否已成功付款,付款失敗或取消付款。

App paypal flow

我需要這方面的幫助。這真是令人沮喪..一直試圖整合貝寶近2周。感覺這麼沒有生命力..

這是甚至可以嗎?還是有更好的方法? 我的要求是設置發票號,產品編號,描述,價格,位置,這些都是必需的應用程序。

回答

5

MainActivity.java

public class PizzaMain extends Activity implements OnClickListener { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     PayPal ppObj = PayPal.initWithAppID(this.getBaseContext(), "APP-80W284485P519543T", PayPal.ENV_NONE); 

     CheckoutButton launchPayPalButton = ppObj.getCheckoutButton(this, PayPal.BUTTON_152x33, CheckoutButton.TEXT_PAY); 
     RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

     params.addRule(RelativeLayout.CENTER_HORIZONTAL); 

     launchPayPalButton.setLayoutParams(params); 
     launchPayPalButton.setOnClickListener(this); 

     ((RelativeLayout) findViewById(R.id.mRlayout1)).addView(launchPayPalButton); 
    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     PayPalPayment newPayment = new PayPalPayment(); 
     char val[] = { '5', '0' }; 
     BigDecimal obj_0 = new BigDecimal(val); 
     newPayment.setSubtotal(obj_0); 
     newPayment.setCurrencyType("USD"); 
     newPayment.setRecipient("[email protected]"); 
     newPayment.setMerchantName("My Company"); 
     Intent paypalIntent = PayPal.getInstance().checkout(newPayment, this); 
     this.startActivityForResult(paypalIntent, 1); 
    } 

    @SuppressWarnings("unused") 
    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     switch (resultCode) { 
      case Activity.RESULT_OK: 
      // The payment succeeded 
      String payKey = data.getStringExtra(PayPalActivity.EXTRA_PAY_KEY); 
      // Tell the user their payment succeeded 
      break; 
      case Activity.RESULT_CANCELED: 
      // The payment was canceled 
      // Tell the user their payment was canceled 
      break; 
      case PayPalActivity.RESULT_FAILURE: 
      // The payment failed -- we get the error from the EXTRA_ERROR_ID 
      // and EXTRA_ERROR_MESSAGE 
      String errorID = data.getStringExtra(PayPalActivity.EXTRA_ERROR_ID); 
      String errorMessage = data.getStringExtra(PayPalActivity.EXTRA_ERROR_MESSAGE); 
      // Tell the user their payment was failed. 
      break; 
     } 
    } 
} 

並在下面給出權限到您的AndroidManifest.xml文件。

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

並將Activity添加到您的AndroidManifest.xml文件中。

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

添加PayPal_MPL.jar JAR文件作爲基準庫到你的應用

+0

你知道任何方式使信用卡和借記卡的選擇,貝寶! –

相關問題