Ошибка Android Paypal SDK: продавец не принимает платежи этого типа

#android #paypal #sdk

#Android #paypal #sdk

Вопрос:

Когда я перейду к последнему этапу и захочу перевести деньги на Paypal, используя Android Paypal SDK в приложении для Android, я получу сообщение об ошибке как

 "Merchant does not Accept payments of this type"
  

Я использую учетные данные live id, но на последнем этапе оплата не происходит

И код, который я использовал, приведен ниже

 package com.coded.sandeep;

import java.math.BigDecimal;
import java.util.StringTokenizer;

import org.json.JSONException;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

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;

public class PaypalActivity extends Activity {


    private static final String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_PRODUCTION;

    // note that these credentials will differ between live amp; sandbox environments.
    private static final String CONFIG_CLIENT_ID = "ASAHYxANvUGbBcXaLdhQWoDrO38JkUkYObXRaOF2FuOfa";



    private static PayPalConfiguration config = new PayPalConfiguration()
    .environment(CONFIG_ENVIRONMENT)
    .clientId(CONFIG_CLIENT_ID);

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

        Intent intent = new Intent(PaypalActivity.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(PaypalActivity.this, PaymentActivity.class);

        intent.putExtra(PaymentActivity.EXTRA_PAYMENT, thingToBuy);

        startActivityForResult(intent, 0);

    }

     private PayPalPayment getThingToBuy(String paymentIntent) {

        Intent intent1 = getIntent();

        String message = "Freiends";
        String amount = "1.29";


        return new PayPalPayment(new BigDecimal(amount), "GBP", message,
                paymentIntent);

    }

    @Override
    protected void onActivityResult (int requestCode, int resultCode, Intent data) {
        if (resultCode == Activity.RESULT_OK) {
            PaymentConfirmation confirm = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);
            if (confirm != null) {
                try {

                    Log.i("paymentExample", confirm.toJSONObject().toString(4));

                } catch (JSONException e) {
                    Log.e("paymentExample", "an extremely unlikely failure occurred: ", e);
                }
            }
        }
        else if (resultCode == Activity.RESULT_CANCELED) {
            Log.i("paymentExample", "The user canceled.");
        }
        else if (resultCode == PaymentActivity.RESULT_EXTRAS_INVALID) {
            Log.i("paymentExample", "An invalid payment was submitted. Please see the docs.");
        }
    }

    @Override
    public void onDestroy() {
        stopService(new Intent(this, PayPalService.class));
        super.onDestroy();
    }
}
  

Как исправить вышеуказанную ошибку и сделать успешный платеж на идентификатор продавца. Я использую идентификатор бизнес-продавца

Войдите в систему после оплаты с помощью карты:

 06-20 01:10:22.402: W/DefaultRequestDirector(1295): Authentication error: Unable to respond to any of these challenges: {}
06-20 01:10:22.502: W/paypal.sdk(1295): U SN:14 PayPal Debug-ID: 406bd412549f4 [live, 2.2.2;release]
06-20 01:10:22.512: E/paypal.sdk(1295): request failure with http statusCode:401,exception:org.apache.http.client.HttpResponseException: Unauthorized
06-20 01:10:22.512: E/paypal.sdk(1295): request failed with server response:{"name":"UNAUTHORIZED_PAYMENT","message":"Unauthorized payment","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#UNAUTHORIZED_PAYMENT","debug_id":"406bd412549f4"}
06-20 01:10:22.732: I/Choreographer(1295): Skipped 61 frames!  The application may be doing too much work on its main thread.
06-20 01:10:22.842: E/PayPalService(1295): UNAUTHORIZED_PAYMENT
  

Ответ №1:

Убедитесь, что учетная запись продавца имеет разрешения Pro. Кроме того, убедитесь, что приложение прошло процесс утверждения разработчиком.

Комментарии:

1. братан, должен ли я приобрести разрешения Pro для учетной записи в Великобритании, а моя учетная запись — бизнес

2. Я не уверен, что понимаю ваш вопрос. Учетная запись продавца должна быть профессиональной, чтобы осуществлять прямые платежи по кредитным картам в реальной среде. Приложение также должно быть зарегистрировано и одобрено PayPal. Посмотрите, как начать работу с вашим приложением , а также, если вы находитесь за пределами США, ознакомьтесь с часто задаваемыми вопросами международных разработчиков

3. Как получить сообщение с благодарностью после успешного завершения платежа @KevinG

4. Люди из paypal говорят, что не нужно покупать для перевода денег с paypal на paypal. для кредитных карт требуется версия pro, и даже если я использую две учетные записи PayPal для перевода денег, появляется та же ошибка. Это приложение должно быть зарегистрировано и одобрено

5. Вам следует обратиться в службу поддержки разработчиков PayPal. отправьте запрос в службу технической поддержки PayPal Merchant . нажмите на ссылку Связаться со службой технической поддержки , чтобы отправить заявку.