PayPal es una de las famosas integraciones de pasarelas de pago, que es una de las pasarelas de pago más famosas del mundo que se utiliza en tantas aplicaciones y sitios web. En este artículo, veremos cómo implementar este SDK de PayPal en nuestra aplicación.
¿Qué vamos a construir en este artículo?
Construiremos una aplicación simple en la que mostraremos un EditText simple y un botón. De ese EditText obtendremos el monto ingresado por el usuario y luego, después de hacer clic en el botón, llamaremos a PayPal para realizar el pago. Con la ayuda de la interfaz de usuario de PayPal, podremos realizar pagos desde la tarjeta y desde la cuenta de PayPal. A continuación se muestra un video de muestra para tener una idea de lo que vamos a hacer en este artículo. Tenga en cuenta que vamos a implementar este proyecto utilizando el lenguaje Java .
Implementación paso a paso para generar una ID de cliente
Paso 1: navegue a la URL a continuación para crear su cuenta de sandbox
Navegue a esta URL e inicie sesión con su nombre de usuario y contraseña de PayPal. Después de eso, podrás ver la siguiente página. En esa página, tenemos que crear nuestra cuenta de SandBox con algunos detalles básicos que se muestran en el siguiente formulario.
Después de completar todos los detalles. Haga clic en la opción Crear cuenta para crear su cuenta de SandBox.
Paso 2: Creación de una nueva aplicación para generar ID de cliente
Navegue a esta URL y dentro de esta agregue el nombre de su aplicación
Dentro de esta pantalla, debemos agregar nuestro Nombre de aplicación y seleccionarlo como Comerciante y luego hacer clic en la opción Crear aplicación para crear una nueva aplicación. Después de eso, podrá ver la identificación del cliente que debemos usar en nuestra aplicación. Ahora nos moveremos hacia Android Part.
Implementación paso a paso en Android
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.
Paso 2: Agregar dependencia en build.gradle
Vaya a la aplicación > Gradle Scripts > build.gradle y agregue la siguiente dependencia en la sección de dependencias.
implementation 'com.paypal.sdk:paypal-android-sdk:2.14.2'
Después de agregar esta dependencia, ahora sincronice su proyecto y avanzaremos hacia el trabajo con el archivo XML.
Paso 3: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!--Edit text for entering the amount--> <EditText android:id="@+id/idEdtAmount" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="20dp" android:layout_marginTop="50dp" android:layout_marginEnd="20dp" android:hint="Enter Amount to be Paid" android:inputType="numberDecimal" /> <!--button for making a payment--> <Button android:id="@+id/idBtnPay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/idEdtAmount" android:layout_centerInParent="true" android:layout_marginTop="10dp" android:text="Make Payment" /> <!--text view for displaying payment status--> <TextView android:id="@+id/idTVStatus" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/idBtnPay" android:layout_marginStart="20dp" android:layout_marginTop="20dp" android:layout_marginEnd="20dp" android:padding="5dp" android:textAlignment="center" android:textColor="@color/purple_200" android:textSize="20sp" /> </RelativeLayout>
Paso 4: trabajar con el archivo MainActivity.java
Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.
Java
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; 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; import org.json.JSONException; import org.json.JSONObject; import java.math.BigDecimal; public class MainActivity extends AppCompatActivity { public static final String clientKey = "Enter your client id here"; public static final int PAYPAL_REQUEST_CODE = 123; // Paypal Configuration Object private static PayPalConfiguration config = new PayPalConfiguration() // Start with mock environment. When ready, // switch to sandbox (ENVIRONMENT_SANDBOX) // or live (ENVIRONMENT_PRODUCTION) .environment(PayPalConfiguration.ENVIRONMENT_SANDBOX) // on below line we are passing a client id. .clientId(clientKey); private EditText amountEdt; private TextView paymentTV; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // on below line we are initializing our variables. amountEdt = findViewById(R.id.idEdtAmount); // creating a variable for button, edit text and status tv. Button makePaymentBtn = findViewById(R.id.idBtnPay); paymentTV = findViewById(R.id.idTVStatus); // on below line adding click listener to our make payment button. makePaymentBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // calling a method to get payment. getPayment(); } }); } private void getPayment() { // Getting the amount from editText String amount = amountEdt.getText().toString(); // Creating a paypal payment on below line. PayPalPayment payment = new PayPalPayment(new BigDecimal(String.valueOf(amount)), "USD", "Course Fees", PayPalPayment.PAYMENT_INTENT_SALE); // Creating Paypal Payment activity intent Intent intent = new Intent(this, PaymentActivity.class); //putting the paypal configuration to the intent intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config); // Putting paypal payment to the intent intent.putExtra(PaymentActivity.EXTRA_PAYMENT, payment); // Starting the intent activity for result // the request code will be used on the method onActivityResult startActivityForResult(intent, PAYPAL_REQUEST_CODE); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); // If the result is from paypal if (requestCode == PAYPAL_REQUEST_CODE) { // If the result is OK i.e. user has not canceled the payment if (resultCode == Activity.RESULT_OK) { // Getting the payment confirmation PaymentConfirmation confirm = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION); // if confirmation is not null if (confirm != null) { try { // Getting the payment details String paymentDetails = confirm.toJSONObject().toString(4); // on below line we are extracting json response and displaying it in a text view. JSONObject payObj = new JSONObject(paymentDetails); String payID = payObj.getJSONObject("response").getString("id"); String state = payObj.getJSONObject("response").getString("state"); paymentTV.setText("Payment " + state + "\n with payment id is " + payID); } catch (JSONException e) { // handling json exception on below line Log.e("Error", "an extremely unlikely failure occurred: ", e); } } } else if (resultCode == Activity.RESULT_CANCELED) { // on below line we are checking the payment status. Log.i("paymentExample", "The user canceled."); } else if (resultCode == PaymentActivity.RESULT_EXTRAS_INVALID) { // on below line when the invalid paypal config is submitted. Log.i("paymentExample", "An invalid Payment or PayPalConfiguration was submitted. Please see the docs."); } } } }
Ahora ejecute su aplicación y vea el resultado de la aplicación.
Producción:
Nota: Como mi cuenta de PayPal no está verificada, los pagos no se realizarán de mi parte.
Publicación traducida automáticamente
Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA