2011-10-03 42 views
14

我嘗試貝寶使用沙箱Android應用程序集成。我成功地讓渴望通過PayPal,但是當我做支付,然後屏幕會得到無形的情況下直接響應
我如何獲得上述問題的答覆?如何在Android應用程序中集成PayPal?

這是我的代碼。

private void invokeSimplePayment() 
{ 
    try 
    { 
     PayPalPayment payment = new PayPalPayment(); 
     payment.setSubtotal(new BigDecimal(Amt)); 
     payment.setCurrencyType(Currency_code[code]); 
     payment.setRecipient("Rec_Email"); 
     payment.setPaymentType(PayPal.PAYMENT_TYPE_GOODS); 
     Intent checkoutIntent = PayPal.getInstance().checkout(payment, this); 
     startActivityForResult(checkoutIntent, request); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 
} 

public void onActivityResults(int requestCode, int resultCode, Intent data) 
{ 
    switch(resultCode) 
    { 
     case Activity.RESULT_OK: 
      resultTitle = "SUCCESS";     
      resultInfo = "You have successfully completed this " ; 
      //resultExtra = "Transaction ID: " + data.getStringExtra(PayPalActivity.EXTRA_PAY_KEY); 
      break; 
     case Activity.RESULT_CANCELED: 
      resultTitle = "CANCELED"; 
      resultInfo = "The transaction has been cancelled."; 
      resultExtra = ""; 
      break; 
     case PayPalActivity.RESULT_FAILURE: 
      resultTitle = "FAILURE"; 
      resultInfo = data.getStringExtra(PayPalActivity.EXTRA_ERROR_MESSAGE); 
      resultExtra = "Error ID: " + data.getStringExtra(PayPalActivity.EXTRA_ERROR_ID); 
    } 
    System.out.println("Result=============="+resultTitle); 
    System.out.println("ResultInfo=============="+resultInfo); 
} 

回答

7

這是我的代碼,它工作正常。有兩個類。

對於PayPal從沙箱住你必須做兩件事情的環境:把實際賬戶持有人設定的收件人,並提交您的應用程序PayPal

public class ResultDelegate implements PayPalResultDelegate, Serializable { 
    private static final long serialVersionUID = 10001L; 


    public void onPaymentSucceeded(String payKey, String paymentStatus) { 

     main.resultTitle = "SUCCESS"; 
     main.resultInfo = "You have successfully completed your transaction."; 
     main.resultExtra = "Key: " + payKey; 
    } 


    public void onPaymentFailed(String paymentStatus, String correlationID, 
        String payKey, String errorID, String errorMessage) { 
     main.resultTitle = "FAILURE"; 
     main.resultInfo = errorMessage; 
     main.resultExtra = "Error ID: " + errorID + "\nCorrelation ID: " 
      + correlationID + "\nPay Key: " + payKey; 
    } 


    public void onPaymentCanceled(String paymentStatus) { 
     main.resultTitle = "CANCELED"; 
     main.resultInfo = "The transaction has been cancelled."; 
     main.resultExtra = ""; 
    } 

主類獲取活動ID:

public class main extends Activity implements OnClickListener { 

// The PayPal server to be used - can also be ENV_NONE and ENV_LIVE 
private static final int server = PayPal.ENV_LIVE; 
// The ID of your application that you received from PayPal 
private static final String appID = "APP-0N8000046V443613X"; 
// This is passed in for the startActivityForResult() android function, the value used is up to you 
private static final int request = 1; 

public static final String build = "10.12.09.8053"; 

protected static final int INITIALIZE_SUCCESS = 0; 
protected static final int INITIALIZE_FAILURE = 1; 

TextView labelSimplePayment; 
LinearLayout layoutSimplePayment; 
CheckoutButton launchSimplePayment; 
Button exitApp; 
TextView title; 
TextView info; 
TextView extra; 
TextView labelKey; 
TextView appVersion; 
EditText enterPreapprovalKey; 

public static String resultTitle; 
public static String resultInfo; 
public static String resultExtra; 
private String isuename; 
private String isueprice; 

Handler hRefresh = new Handler(){ 
    @Override 
    public void handleMessage(Message msg) { 
     switch(msg.what){ 

     case INITIALIZE_SUCCESS: 
      setupButtons(); 
      break; 
     case INITIALIZE_FAILURE: 
      showFailure(); 
      break; 
     } 
    } 
}; 




@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    Thread libraryInitializationThread = new Thread() { 
     @Override 
     public void run() { 
      initLibrary(); 

      // The library is initialized so let's create our CheckoutButton and update the UI. 
      if (PayPal.getInstance().isLibraryInitialized()) { 
       hRefresh.sendEmptyMessage(INITIALIZE_SUCCESS); 
      } 
      else { 
       hRefresh.sendEmptyMessage(INITIALIZE_FAILURE); 
      } 
     } 
    }; 
    libraryInitializationThread.start(); 


    isuename=getIntent().getStringExtra("name").trim(); 
    isueprice=getIntent().getStringExtra("price").replace("$", "").trim(); 

    Log.v("isuename ",""+isuename); 
    Log.v("isueprice ",""+isueprice); 

    LinearLayout content = new LinearLayout(this); 
    content.setLayoutParams(new LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, android.view.ViewGroup.LayoutParams.FILL_PARENT)); 
    content.setGravity(Gravity.CENTER_HORIZONTAL); 
    content.setOrientation(LinearLayout.VERTICAL); 
    content.setPadding(10, 10, 10, 10); 
    content.setBackgroundColor(Color.WHITE); 

    layoutSimplePayment = new LinearLayout(this); 
    layoutSimplePayment.setLayoutParams(new LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT)); 
    layoutSimplePayment.setGravity(Gravity.CENTER_HORIZONTAL); 
    layoutSimplePayment.setOrientation(LinearLayout.VERTICAL); 
    layoutSimplePayment.setPadding(0, 5, 0, 5); 

    labelSimplePayment = new TextView(this); 
    labelSimplePayment.setGravity(Gravity.CENTER_HORIZONTAL); 
    labelSimplePayment.setText("C&EN"); 
    labelSimplePayment.setTextColor(Color.RED); 
    labelSimplePayment.setTextSize(45.0f); 

    layoutSimplePayment.addView(labelSimplePayment); 
      //  labelSimplePayment.setVisibility(View.GONE); 

    content.addView(layoutSimplePayment); 

    LinearLayout layoutKey = new LinearLayout(this); 
    layoutKey.setLayoutParams(new LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT)); 
    layoutKey.setGravity(Gravity.CENTER_HORIZONTAL); 
    layoutKey.setOrientation(LinearLayout.VERTICAL); 
    layoutKey.setPadding(0, 1, 0, 5); 

    enterPreapprovalKey = new EditText(this); 
    enterPreapprovalKey.setLayoutParams(new LayoutParams(200, 45)); 
    enterPreapprovalKey.setGravity(Gravity.CENTER); 
    enterPreapprovalKey.setSingleLine(true); 
    enterPreapprovalKey.setHint("Enter PA Key"); 
    layoutKey.addView(enterPreapprovalKey); 
    enterPreapprovalKey.setVisibility(View.GONE); 
    labelKey = new TextView(this); 
    labelKey.setGravity(Gravity.CENTER_HORIZONTAL); 
    labelKey.setPadding(0, -5, 0, 0); 
    labelKey.setText("(Required for Preapproval)"); 
    layoutKey.addView(labelKey); 
    labelKey.setVisibility(View.GONE); 
    content.addView(layoutKey); 

    title = new TextView(this); 
    title.setLayoutParams(new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT)); 
    title.setPadding(0, 5, 0, 5); 
    title.setGravity(Gravity.CENTER_HORIZONTAL); 
    title.setTextSize(30.0f); 
    title.setVisibility(View.GONE); 
    content.addView(title); 

    info = new TextView(this); 
    info.setLayoutParams(new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT)); 
    info.setPadding(0, 5, 0, 5); 
    info.setGravity(Gravity.CENTER_HORIZONTAL); 
    info.setTextSize(20.0f); 
    info.setVisibility(View.VISIBLE); 
    info.setText("Please Wait! Initializing Paypal..."); 
    info.setTextColor(Color.BLACK); 
    content.addView(info); 

    extra = new TextView(this); 
    extra.setLayoutParams(new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT)); 
    extra.setPadding(0, 5, 0, 5); 
    extra.setGravity(Gravity.CENTER_HORIZONTAL); 
    extra.setTextSize(12.0f); 
    extra.setVisibility(View.GONE); 
    content.addView(extra); 

    LinearLayout layoutExit = new LinearLayout(this); 
    layoutExit.setLayoutParams(new LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT)); 
    layoutExit.setGravity(Gravity.CENTER_HORIZONTAL); 
    layoutExit.setOrientation(LinearLayout.VERTICAL); 
    layoutExit.setPadding(0, 15, 0, 5); 

    exitApp = new Button(this); 
    exitApp.setLayoutParams(new LayoutParams(200, android.view.ViewGroup.LayoutParams.WRAP_CONTENT)); //Semi mimic PP button sizes 
    exitApp.setOnClickListener(this); 
    exitApp.setText("Exit"); 
    layoutExit.addView(exitApp); 
    content.addView(layoutExit); 

    appVersion = new TextView(this); 
    appVersion.setGravity(Gravity.CENTER_HORIZONTAL); 
    appVersion.setPadding(0, -5, 0, 0); 
    appVersion.setText("\n\nSimple Demo Build " + build + "\nMPL Library Build " + PayPal.getBuild()); 
    content.addView(appVersion); 
    appVersion.setVisibility(View.GONE); 

    setContentView(content); 
} 
public void setupButtons() { 
    PayPal pp = PayPal.getInstance(); 
    // Get the CheckoutButton. There are five different sizes. The text on the button can either be of type TEXT_PAY or TEXT_DONATE. 
    launchSimplePayment = pp.getCheckoutButton(this, PayPal.BUTTON_194x37, CheckoutButton.TEXT_PAY); 
    // You'll need to have an OnClickListener for the CheckoutButton. For this application, MPL_Example implements OnClickListener and we 
    // have the onClick() method below. 
    launchSimplePayment.setOnClickListener(this); 
    // The CheckoutButton is an android LinearLayout so we can add it to our display like any other View. 
    layoutSimplePayment.addView(launchSimplePayment); 

    // Get the CheckoutButton. There are five different sizes. The text on the button can either be of type TEXT_PAY or TEXT_DONATE. 

    // Show our labels and the preapproval EditText. 
    labelSimplePayment.setVisibility(View.VISIBLE); 


    info.setText(""); 
    info.setVisibility(View.GONE); 
} 
public void showFailure() { 
    title.setText("FAILURE"); 
    info.setText("Could not initialize the PayPal library."); 
    title.setVisibility(View.VISIBLE); 
    info.setVisibility(View.VISIBLE); 
} 
private void initLibrary() { 
    PayPal pp = PayPal.getInstance(); 

    if(pp == null) { 

     pp = PayPal.initWithAppID(this, appID, server); 
     pp.setLanguage("en_US"); // Sets the language for the library. 
     pp.setFeesPayer(PayPal.FEEPAYER_EACHRECEIVER); 
     // Set to true if the transaction will require shipping. 
     pp.setShippingEnabled(true); 
     // Dynamic Amount Calculation allows you to set tax and shipping amounts based on the user's shipping address. Shipping must be 
     // enabled for Dynamic Amount Calculation. This also requires you to create a class that implements PaymentAdjuster and Serializable. 
     pp.setDynamicAmountCalculationEnabled(false); 
     // -- 
    } 
} 

private PayPalPayment exampleSimplePayment() { 
    // Create a basic PayPalPayment. 
    PayPalPayment payment = new PayPalPayment(); 
    // Sets the currency type for this payment. 
    payment.setCurrencyType("USD"); 
    // Sets the recipient for the payment. This can also be a phone number. 
    payment.setRecipient("[email protected]"); 


    // Sets the amount of the payment, not including tax and shipping amounts. 

    payment.setSubtotal(new BigDecimal(isueprice)); 
    // Sets the payment type. This can be PAYMENT_TYPE_GOODS, PAYMENT_TYPE_SERVICE, PAYMENT_TYPE_PERSONAL, or PAYMENT_TYPE_NONE. 
    payment.setPaymentType(PayPal.PAYMENT_TYPE_GOODS); 

    // PayPalInvoiceData can contain tax and shipping amounts. It also contains an ArrayList of PayPalInvoiceItem which can 
    // be filled out. These are not required for any transaction. 
    PayPalInvoiceData invoice = new PayPalInvoiceData(); 
    // Sets the tax amount. 
    invoice.setTax(new BigDecimal("0")); 
    // Sets the shipping amount. 
    invoice.setShipping(new BigDecimal("0")); 

    // PayPalInvoiceItem has several parameters available to it. None of these parameters is required. 
    PayPalInvoiceItem item1 = new PayPalInvoiceItem(); 
    // Sets the name of the item. 
    item1.setName(isuename); 
    // Sets the ID. This is any ID that you would like to have associated with the item. 
    item1.setID("87239"); 
    // Sets the total price which should be (quantity * unit price). The total prices of all PayPalInvoiceItem should add up 
    // to less than or equal the subtotal of the payment. 
    /* item1.setTotalPrice(new BigDecimal("2.99")); 
    // Sets the unit price. 
    item1.setUnitPrice(new BigDecimal("2.00")); 
    // Sets the quantity. 
    item1.setQuantity(3);*/ 
    // Add the PayPalInvoiceItem to the PayPalInvoiceData. Alternatively, you can create an ArrayList<PayPalInvoiceItem> 
    // and pass it to the PayPalInvoiceData function setInvoiceItems(). 
    invoice.getInvoiceItems().add(item1); 

    // Create and add another PayPalInvoiceItem to add to the PayPalInvoiceData. 
    /*PayPalInvoiceItem item2 = new PayPalInvoiceItem(); 
    item2.setName("Well Wishes"); 
    item2.setID("56691"); 
    item2.setTotalPrice(new BigDecimal("2.25")); 
    item2.setUnitPrice(new BigDecimal("0.25")); 
    item2.setQuantity(9); 
    invoice.getInvoiceItems().add(item2);*/ 

    // Sets the PayPalPayment invoice data. 
    payment.setInvoiceData(invoice); 
    // Sets the merchant name. This is the name of your Application or Company. 
    payment.setMerchantName("C&EN"); 
    // Sets the description of the payment. 
    payment.setDescription("simple payment"); 
    // Sets the Custom ID. This is any ID that you would like to have associated with the payment. 
    payment.setCustomID("8873482296"); 
    // Sets the Instant Payment Notification url. This url will be hit by the PayPal server upon completion of the payment. 
    //payment.setIpnUrl("http://www.exampleapp.com/ipn"); 
    // Sets the memo. This memo will be part of the notification sent by PayPal to the necessary parties. 
    payment.setMemo("Hi! I'm making a memo for a payment."); 

    return payment; 
} 
@Override 
public void onClick(View v) { 

    if(v == launchSimplePayment) { 
     // Use our helper function to create the simple payment. 
     PayPalPayment payment = exampleSimplePayment(); 
     // Use checkout to create our Intent. 
     Intent checkoutIntent = PayPal.getInstance().checkout(payment, this, new ResultDelegate()); 
     // Use the android's startActivityForResult() and pass in our Intent. This will start the library. 
     startActivityForResult(checkoutIntent, request); 
    } else if(v == exitApp) { 

     Intent in = new Intent(); 
     in.putExtra("payment", "unpaid"); 
     /*in.putExtra("condition", "false");*/ 
     setResult(1,in);//Here I am Setting the Requestcode 1, you can put according to your requirement 
     finish(); 
    } 
} 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(requestCode != request) 
     return; 

    if(main.resultTitle=="SUCCESS"){ 
     Intent in = new Intent(); 
     in.putExtra("payment", "paid"); 
     setResult(22,in); 

    }else if(main.resultTitle=="FAILURE"){ 
     Intent in = new Intent(); 
     in.putExtra("payment", "unpaid"); 
     setResult(22,in); 
       //   finish(); 
    }else if(main.resultTitle=="CANCELED"){ 
     Intent in = new Intent(); 
     in.putExtra("payment", "unpaid"); 
     setResult(22,in); 
        //   finish(); 
    } 


    launchSimplePayment.updateButton(); 

    title.setText(resultTitle); 
    title.setVisibility(View.VISIBLE); 
    info.setText(resultInfo); 
    info.setVisibility(View.VISIBLE); 
    extra.setText(resultExtra); 
    extra.setVisibility(View.VISIBLE); 
    finish(); 
} 
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Intent in = new Intent(); 
     in.putExtra("payment", "unpaid"); 
     setResult(1,in); 
     finish(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+0

你的樣品是根據官方文檔的權利我已經成功地使Preapp工作,但它吮吸。我正在使用一個Web應用程序從paypal獲取preapproval密鑰(這部分是確定的)。它接收密鑰並將響應重定向到android。現在,在Android上,我使用PayPalPreapproval Obj並將其preappkey設置爲新檢索的預應用密鑰。當我嘗試調用'PayPal.getInstance()。setPreapprovalKey(result); 。 意圖preapproveIntent = PayPal.getInstance()preapprove(預先批准, getBaseContext()); startActivityForResult(preapproveIntent,0);' 我得到了一個錯誤 – kaffein

+0

首先你必須採取從PayPalPayment對象結帳,然後採取結帳 –

+0

我不知道如何得到批准前關鍵 –

0
package com.paypal; 

import android.app.Activity; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast; 

import com.paypal.android.sdk.payments.PayPalConfiguration; 
import com.paypal.android.sdk.payments.PayPalPayment; 
import com.paypal.android.sdk.payments.PayPalService; 
import com.paypal.android.sdk.payments.PaymentActivity; 
import com.paypal.android.sdk.payments.PaymentConfirmation; 

import org.json.JSONException; 
import org.json.JSONObject; 

import java.math.BigDecimal; 

public class MainActivity extends AppCompatActivity { 

    public static String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_SANDBOX; 
    // note that these credentials will differ between live & sandbox environments. 

    public static String CONFIG_CLIENT_ID = "Add your Client ID";  /// add your paypal client id 

    private static int REQUEST_CODE_PAYMENT = 1; 
    public static PayPalConfiguration config = new PayPalConfiguration() 
      .environment(CONFIG_ENVIRONMENT) 
      .clientId(CONFIG_CLIENT_ID); 

    Button btn_payment; 
    String paypal_id,paypal_state,paypal_amount,paypal_currency_code; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     btn_payment = (Button)findViewById(R.id.btn_payment); 

     btn_payment.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       onBuyPressed(); 
      } 
     }); 

    } 

    public void onBuyPressed() { 
     PayPalPayment thingToBuy = getThingToBuy(PayPalPayment.PAYMENT_INTENT_SALE); 
     Intent intent = new Intent(MainActivity.this, PaymentActivity.class); 
     intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config); 
     intent.putExtra(PaymentActivity.EXTRA_PAYMENT, thingToBuy); 
     startActivityForResult(intent, REQUEST_CODE_PAYMENT); 
    } 

    private PayPalPayment getThingToBuy(String paymentIntent) { 
     return new PayPalPayment(new BigDecimal("1"), "USD", "sample item ", 
       paymentIntent); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == REQUEST_CODE_PAYMENT) { 
      if (resultCode == Activity.RESULT_OK) { 
       PaymentConfirmation confirm = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION); 
       if (confirm != null) { 
        try { 
         Log.e("Show", confirm.toJSONObject().toString(4)); 
         Log.e("Show", confirm.getPayment().toJSONObject().toString(4)); 

         JSONObject json=confirm.toJSONObject(); 
         JSONObject responce = json.getJSONObject("response"); 
         paypal_id = responce.getString("id"); 
         paypal_state = responce.getString("state"); 
         JSONObject payment=confirm.getPayment().toJSONObject(); 
         paypal_amount=payment.getString("amount"); 
         paypal_currency_code=payment.getString("currency_code"); 

         Toast.makeText(getApplicationContext(), "PaymentConfirmation info received" + " from PayPal", Toast.LENGTH_LONG).show(); 
        } catch (JSONException e) { 
         Toast.makeText(getApplicationContext(), "an extremely unlikely failure" + 
           " occurred:", Toast.LENGTH_LONG).show(); 
        } 
       } 
      } else if (resultCode == Activity.RESULT_CANCELED) { 

      } else if (resultCode == PaymentActivity.RESULT_EXTRAS_INVALID) { 
       Toast.makeText(getApplicationContext(), "An invalid Payment or PayPalConfiguration" + 
         " was submitted. Please see the docs.", Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 

    @Override 
    public void onDestroy() { 
     // Stop service when done 
     stopService(new Intent(this, PayPalService.class)); 
     super.onDestroy(); 
    } 

} 


///////////////// decler paypal activity in manifest /////////////////////////// 

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

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <!-- for card.io card scanning --> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 

    <uses-feature 
     android:name="android.hardware.camera" 
     android:required="false" /> 
    <uses-feature 
     android:name="android.hardware.camera.autofocus" 
     android:required="false" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 


     <!-- pay pal server decler --> 
     <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" /> 
     <!-- end --> 

    </application> 

</manifest> 






//////////////////// gradel /////////////////// 

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "com.paypal" 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.0.1' 
    compile 'com.paypal.sdk:paypal-android-sdk:2.14.2' 
} 
相關問題