2015-01-20 6 views
1

Шаги, которые я последовал, чтобы интегрировать PayPal.Интеграция с интеграцией PayPal

  • Создана учетная запись в песочнице.
  • Создано ClientId для приложения.
  • скачал paypal sdk и интегрирован с моим приложением.
  • следующие шаги, как в https://devblog.paypal.com/working-with-the-new-android-sdk/ для интеграции.

Код:

public class MainActivity extends Activity { 

    private static final String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_NO_NETWORK; 
    private static final String CONFIG_CLIENT_ID = "***************************"; 
    private static final String CONFIG_RECEIVER_EMAIL = "[email protected]"; 
    private static final int REQUEST_CODE_PAYMENT = 1; 
    private static final String TAG = "paymentExample"; 


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


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


    public void onBuyPressed(View pressed) { 
      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("100.75"), "USD", "my product", 
        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.i(TAG, confirm.toJSONObject().toString(4)); 
          Log.i(TAG, confirm.getPayment().toJSONObject().toString(4)); 


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

          String paymentId=jsonObj.getJSONObject("response").getString("id"); 
          System.out.println("payment id:-=="+paymentId); 


          Toast.makeText(
            getApplicationContext(), 
            "payment id"+paymentId, Toast.LENGTH_LONG) 
            .show(); 


          Toast.makeText(
            getApplicationContext(), 
            "PaymentConfirmation info received from PayPal", Toast.LENGTH_LONG) 
            .show(); 

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

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

Response:

01-20 01:14:43.072: I/paymentExample(17759): { 
01-20 01:14:43.072: I/paymentExample(17759):  "response": { 
01-20 01:14:43.072: I/paymentExample(17759):   "state": "approved", 
01-20 01:14:43.072: I/paymentExample(17759):   "id": "PAY-6PU626847BSKPEWXHY", 
01-20 01:14:43.072: I/paymentExample(17759):   "create_time": "2014-07-18T18:46:55Z", 
01-20 01:14:43.072: I/paymentExample(17759):   "intent": "sale" 
01-20 01:14:43.072: I/paymentExample(17759):  }, 
01-20 01:14:43.072: I/paymentExample(17759):  "client": { 
01-20 01:14:43.072: I/paymentExample(17759):   "platform": "Android", 
01-20 01:14:43.072: I/paymentExample(17759):   "paypal_sdk_version": "2.8.4", 
01-20 01:14:43.072: I/paymentExample(17759):   "product_name": "PayPal-Android-SDK", 
01-20 01:14:43.072: I/paymentExample(17759):   "environment": "mock" 
01-20 01:14:43.072: I/paymentExample(17759):  }, 
01-20 01:14:43.072: I/paymentExample(17759):  "response_type": "payment" 
01-20 01:14:43.072: I/paymentExample(17759): } 
01-20 01:14:43.073: I/paymentExample(17759): { 
01-20 01:14:43.073: I/paymentExample(17759):  "short_description": "YRYCN", 
01-20 01:14:43.073: I/paymentExample(17759):  "amount": "100.75", 
01-20 01:14:43.073: I/paymentExample(17759):  "intent": "sale", 
01-20 01:14:43.073: I/paymentExample(17759):  "currency_code": "USD" 
01-20 01:14:43.073: I/paymentExample(17759): } 

Мои вопросы:

  • Ответа остается тем же, независимо от того, сколько раз я бегу, то есть PaymentID и create_time остается тоже самое. Пожалуйста, дайте мне знать, почему это происходит?
  • Как реализовать этот момент - From your server, use the payment id value to look up the payment details with the REST API.?
  • Возможно ли использовать только «Pay with Card» из SDK PayPal?
+0

Пожалуйста, используйте правильное дело приговор при написании вопросов о StackOverflow. Кроме того, [это] (http://english.stackexchange.com/questions/2429/can-doubt-sometimes-mean-question) может вас заинтересовать. – Krishnabhadra

+0

Спасибо, но получили какие-либо ответы на этот вопрос? – Anitha

+0

Я все еще застрял с ошибкой ... – Anitha

ответ

1

Нашел ответ и сделал очень небольшую ошибку.

  • Ответ остается таким же, поскольку я проверял без песочницы/варианта с реальными деньгами, т.е.

[это для без общения с серверами системы PayPal]

private static final String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_NO_NETWORK 

Изменения в

[это для ваших тестовых учетных данных от https://developer.paypal.com]

private static final String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_SANDBOX 

или Изменить до

[это двигаться реальные деньги]

private static final String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_PRODUCTION 

** не уверен, что на остальных двух точках

Смежные вопросы