#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 . нажмите на ссылку Связаться со службой технической поддержки , чтобы отправить заявку.