2015-04-24 3 views
0

Я пытаюсь интегрировать paypal с моим приложением для Android, но я получаю и ошибаюсь paypal android error_description":"Invalid client_id" Как ясно сказано, что Client_id недействителен, но я не вижу никакой ошибки, которую я только что скопировал с этой страницы. ! [Введите описание изображения здесь] [1]Paypal payment android

код похож на этот

public class MainActivity extends Activity implements OnClickListener{ 

private Button btnPay; 
//set the environment for production/sandbox/no netowrk 
private static final String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_PRODUCTION; 

private static final String CONFIG_CLIENT_ID = "nsdkjansdknaskd7415150U"; 

private static final int REQUEST_PAYPAL_PAYMENT = 1; 

private static PayPalConfiguration config = new PayPalConfiguration() 
     .environment(CONFIG_ENVIRONMENT) 
     .clientId(CONFIG_CLIENT_ID) 
     // The following are only used in PayPalFuturePaymentActivity. 
     .merchantName("Android Hub 4 You") 
     .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); 
    btnPay=(Button)findViewById(R.id.button1); 
    btnPay.setOnClickListener(this); 

    /** 
    * call pay pal services 
    */ 

    Intent intent = new Intent(this, PayPalService.class); 
    intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config); 
    startService(intent); 
} 



@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch(v.getId()){ 
    case R.id.button1 : 
     PayPalPayment thingToBuy = new PayPalPayment(new BigDecimal(1),"USD", "androidhub4you.com", 
        PayPalPayment.PAYMENT_INTENT_SALE); 

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

       intent.putExtra(PaymentActivity.EXTRA_PAYMENT, thingToBuy); 

       startActivityForResult(intent, REQUEST_PAYPAL_PAYMENT); 
     break; 
    } 

} 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == REQUEST_PAYPAL_PAYMENT) { 
      if (resultCode == Activity.RESULT_OK) { 
       PaymentConfirmation confirm = data 
         .getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION); 
       if (confirm != null) { 
        try { 
         System.out.println("Responseeee"+confirm); 
         Log.i("paymentExample", confirm.toJSONObject().toString()); 


         JSONObject jsonObj=new JSONObject(confirm.toJSONObject().toString()); 

         String paymentId=jsonObj.getJSONObject("response").getString("id"); 
         System.out.println("payment id:-=="+paymentId); 
         Toast.makeText(getApplicationContext(), paymentId, Toast.LENGTH_LONG).show(); 

        } 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."); 
      } 
     } 


    } 




    } 
+1

Обратите внимание, что использование PayPal в вашем приложении нарушит условия использования Google Play: https://play.google.com/intl/ru/about/developer-content-policy.html – Knossos

+0

Я не собираюсь публиковать его в googleplay – Anirban

ответ

1

Вы не используете правильные учетные данные. «Идентификатор приложения», который вы используете в настоящее время, предназначен для API адаптивных платежей PayPal и устаревшего MPL. Для Android mSDK вам нужно будет следовать инструкциям here, чтобы создать приложение REST API. Это покажет вам, как создать приложение на портале разработчиков, чтобы вы получили идентификатор клиента и секрет. Этот идентификатор клиента - это то, что вам нужно использовать в приведенном выше коде Android mSDK.