Проблемы с PayPal API в Android

1

Эй, я пытаюсь интегрировать API MPL Paypal в android, но у меня много проблем... Я сделал все https://www.x.com/developers/paypal/how-to-guides/how-accept-payments -android-app-using-mpl, но когда я запускаю свой проект, я получаю эту ошибку:

java.lang.NoClassDefFoundError: com.paypal.android.MEP.PayPalPayment

Я включил файл mpl.jar в свой проект.

Вот код:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
public void initLibrary() {
      PayPal pp = PayPal.getInstance();
      if (pp == null) { 
        pp = PayPal.initWithAppID(this, "APP-80W284485P519543T", PayPal.ENV_NONE);
        pp.setLanguage("en_US");
        pp.setFeesPayer(PayPal.FEEPAYER_EACHRECEIVER);
        pp.setShippingEnabled(true);
      }
    }
private void showPayPalButton() {
      PayPal pp = PayPal.getInstance();
      final CheckoutButton launchPayPalButton;
      launchPayPalButton = pp.getCheckoutButton(this, PayPal.BUTTON_278x43, CheckoutButton.TEXT_PAY);
      launchPayPalButton.setOnClickListener((OnClickListener) this);
      RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams (LayoutParams.WRAP_CONTENT, 
          LayoutParams.WRAP_CONTENT);
      params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
      params.bottomMargin = 10;
      launchPayPalButton.setLayoutParams(params);
      launchPayPalButton.setId(10);
      ((RelativeLayout) findViewById(R.id.rlayout)).addView(launchPayPalButton);
      ((RelativeLayout) findViewById(R.id.rlayout)).setGravity(Gravity.CENTER_HORIZONTAL);
    }
public void PayPalButtonClick(View arg0) {
      PayPalPayment payment = new PayPalPayment();
      payment.setCurrencyType("USD");
      payment.setRecipient("[email protected]");
      payment.setSubtotal(new BigDecimal(10));
      payment.setPaymentType(PayPal.PAYMENT_TYPE_GOODS);
      PayPalInvoiceData invoice = new PayPalInvoiceData();
      invoice.setTax(new BigDecimal(5));
    }
public void PayPalActivityResult(int requestCode, int resultCode, Intent intent) {
      switch (resultCode) {
        case Activity.RESULT_OK:
          String payKey = intent.getStringExtra(PayPalActivity.EXTRA_PAY_KEY);
          //this.paymentSucceeded(payKey);
          break;
        case Activity.RESULT_CANCELED:
          //this.paymentCanceled();
          break;
        case PayPalActivity.RESULT_FAILURE:
          String errorID = intent.getStringExtra(PayPalActivity.EXTRA_ERROR_ID);
          String errorMessage = intent.getStringExtra(PayPalActivity.EXTRA_ERROR_MESSAGE);
          //this.paymentFailed(errorID, errorMessage);
      }
    }

Я не считаю ошибки здесь...

Теги:
paypal

2 ответа

1

Скопируйте последний файл SDK SDK PayPal. Вставьте папку libs в свой проект, затем щелкните правой кнопкой мыши файл jar add to build path,

попробуйте под кодом.

открытый класс MainActivity расширяет действие {

 private static final String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_NO_NETWORK;

    // note that these credentials will differ between live & sandbox environments.
    private static final String CONFIG_CLIENT_ID = "AVLi6hDi_hTrqeVnADnRQ6jOF8VIj1b8nWbRof2ciyWhOKaOxnJr6wJKf7mi"; //"credential from developer.paypal.com";

    private static final int REQUEST_CODE_PAYMENT = 1;
    private static final int REQUEST_CODE_FUTURE_PAYMENT = 2;

    private static PayPalConfiguration config = new PayPalConfiguration()
    .environment(CONFIG_ENVIRONMENT)
    .clientId(CONFIG_CLIENT_ID)
    // The following are only used in PayPalFuturePaymentActivity.
    .merchantName("Hipster Store")
    .merchantPrivacyPolicyUri(Uri.parse("https://www.example.com/privacy"))
    .merchantUserAgreementUri(Uri.parse("https://www.example.com/legal"));


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
     Intent intent = new Intent(this, PayPalService.class);
        intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config);
        startService(intent);

        }
 public void onBuyPressed(View pressed) {
     PayPalPayment thingToBuy = getThingToBuy(PayPalPayment.PAYMENT_INTENT_SALE);

        Intent intent = new Intent(MainActivity.this, PaymentActivity.class);

        intent.putExtra(PaymentActivity.EXTRA_PAYMENT, thingToBuy);

        startActivityForResult(intent, REQUEST_CODE_PAYMENT);
}

 private PayPalPayment getThingToBuy(String environment) {
        return new PayPalPayment(new BigDecimal(String.valueOf(100)), "USD", "Android Mobile",
                environment);
    }

}

0

MPL находится в процессе устаревания. Он рекомендовал вместо этого использовать новый SDK PayPal Android.

  • 0
    У меня много проблем с интеграцией Android. Я не гражданин США, поэтому я использую классический apis, но не могу найти подходящий учебник или решение. Вы могли бы посоветовать :)
  • 0
    Эта ошибка указывает на то, что ваш путь к классам не содержит банку. Убедитесь, что mpl.jar находится в каталоге вашего проекта 'libs'. Этого должно быть достаточно, но если нет, вам может потребоваться добавить его в путь сборки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню