Este es un tutorial para la integración de PayPal en PHP. Si está utilizando una plataforma de negociación electrónica basada en PHP, puede seguir este tutorial para implementar el pago de PayPal en su tienda.
¿Qué es PayPal?
¿Cómo funciona PayPal?
Los términos básicos de Lean
Integración de PayPal en PHP paso a paso
pruebas
¿Qué es PayPal? PayPal es una puerta de pago popular que ofrece un procesamiento seguro y fácil de usar a nivel mundial. Un cliente puede agregar su cuenta bancaria, tarjeta de débito o tarjeta de crédito y comienza con PayPal. Actualmente, 286 millones de usuarios usan casi el 87.5% de los compradores en línea pagan con PayPal.
Por lo tanto, tener PayPal en su sitio es una de las sugerencias que ofrecemos a nuestros clientes. Las mejores funciones que ofrece PayPal incluyen:
Tarjetas de crédito, tarjetas de débito
Crear una factura en línea
Cuentas del comprador y el vendedor
Carro
Aplicación movil
Transferencia internacional de dinero
¿Cómo funciona PayPal? El uso de PayPal para transacciones y compras en línea es seguro. Si el usuario ya tiene una cuenta en PayPal, puede completar el pago rápidamente. Debe conectarse a la cuenta y luego confirmar el monto. Después de seleccionar el banco/tarjeta, el pago se realizará con un solo clic.

Es fácil para el cliente. El comerciante debe configurar PayPal en la tienda. Y si se trata de un producto de software y requiere pagos recurrentes, debe realizar la integración de PayPal en el PHP. En este tutorial, le diré cómo hacer la integración de PayPal en el PHP y finalmente podrá integrar PayPal en su tienda. Aquí hay algunos términos básicos que necesita saber antes de leer el tutorial. Proceso de notificación instantánea: la notificación de pago instantáneo (IPN) es un servicio de notificación que envía automáticamente la notificación de cualquier evento relacionado con las transacciones de PayPal. Los propietarios de tiendas de comercio electrónico pueden usarlo de varias maneras, como el pedido automático en honor y proporcionar a los clientes el estado del pedido. Fórmula de pago: un formulario en su sitio enviará valores a PayPal, como el nombre del cliente/ dirección de correo electrónico. Page de pago.php: PAGOY.PHP La página en su sitio es esa página que administrará todas las solicitudes enviadas a PayPal y las solicitudes recibidas de PayPal. Integración de PayPal en PHP Paso a paso Paso 1 – Configure su cuenta de PayPal El primer paso es crear una cuenta de PayPal. Vaya a PayPal y haga clic en el registro.
Debe abrir la cuenta comercial para acceder a la IPN. Después de la cuenta correcta de PayPal Configurate, podrá acceder a la IPN. Acceda a la opción “Editar el perfil” de su cuenta de PayPal y busque la siguiente configuración:

Navegue mis “preferencias de ventas” y encuentre cómo ser pagado y gestionar el riesgo.
Abra el proceso de notificación de pago instantáneo
Activar el valor de IPN
Cambie la URL IPN a la página PHP que contiene el código IPN (http://www.example.com/payment.php) navegue a “mis preferencias de ventas” y encuentre cómo ser pagados y administrar el riesgo.
Abrir el bloque de pago
Detener el pago de los usuarios que pagan con Echeque bloqueándolo
Navegue a la “información de la cuenta” y encuentre “correo electrónico”
escribe tu dirección de correo electrónico principal.Este correo electrónico será visible para los usuarios, así que manténgalo profesionalmente.
Paso 2-creación El formulario HTML debe establecer un formulario en su sitio para enviar la información básica sobre el beneficiario de pago a PayPal.
Puede usar este código HTML para crear el formulario HTML.
Paso 3: enviando la solicitud como mencionamos, la página Payment.php administrará la solicitud de salida a PayPal y la respuesta recibida después del procesamiento de pagos.Sin embargo, debe construir los parámetros y transmitirlos a través de PayPal a través de cadenas de consulta antes de enviarlos. Valores que se enviarán:
Negocio: la dirección de correo electrónico de su cuenta de PayPal
Item_name: nombre del artículo
Suma: precio del producto
Devolución: Dirección de devolución después del éxito del pago
Cancel_return: si se cancela el pago, devuelva la dirección
Notify_url: Payment.php Page URL en su sitio web
Personalizado: cualquier otro datos que desee enviar mediante solicitud de PayPal
// Para los pagos de prueba, queremos habilitar el modo Sandbox. Si desea poner los pagos en vivo // a través de esta configuración, las necesidades de cambio a ‘falso’. $ habilsandbox = true; // Configuración de la base de datos. Cambielos para la configuración de su base de datos. $ dbconfig = [‘host’ => ‘localhost’, ‘username’ => ‘user’, ‘contraseña’ => ‘secreto’, ‘nombre’ => Ejemplo_database ‘]; // Configuración de PayPal. Cambielos a sus detilios accesorios y las URL relevantes // para su sitio. $ payPalconfig = [‘Correo electrónico’ => ‘[Correo electrónico protegido]’, ‘devuelve /payment-cancelled.html’, ‘notify_url’ => ‘http://example.com/payments.php’]; $ PayPalUrl = $ habilitado ybox? ‘https://www.sandbox.paypal.com/cgi-bin/webscr’: ‘https://www.paypal.com/cgi-bin/webscr’; // Producto que se compra. $ ittemname = ‘elemento de prueba’; $ ittemamount = 5.00; // incluye funciones que requieren ‘functions.php’; // Verifique si la solicitud o respuesta de PayPal if (! Isset ($ _ post [“TXN_ID”) &&! ISSET ($ _ POST [“TXN_TYPE”])) {// Tome la publicación para la que podemos configurar la cadena de consulta para PayPal. // idealmente usaríamos una lista blanca aquí para verificar que noothing se inyecta en // nuestra fecha de publicación. $ date = []; Foreach ($ _post como $ key => $ valor) {$ date [$ key] = StripsLashes ($ valor); } // Establezca la cuenta de PayPal. $ date [‘Business’] = $ PayPalConfig [‘correo electrónico’]; // Establecer las direcciones de devolución de PayPal. $ date [‘return’] = StripsLashes ($ paypalconfig [‘return_url’]); $ Date [‘cancel_return’
] = StripsLashes ($ payPalconfig [‘cancel_url’]);$ date [‘notify_url’] = StripsLashes ($ paypalconfig [‘notify_url’]);// Establezca los detalles sobre el producto que se está comprando, incluida la cantidad // y la moneda para que el formulario no se anule.$ Date [‘item_name’] = $ ittemname;$ date [‘cantidad’] = $ ittemamount;$ date [‘Currency_code’] = ‘GBP’;// Agregue los campos de aduanas para la cadena de consulta.// $ date [‘Custom’] = userId;// Construye la cadena de consulta a partir de la fecha.$ QueryString = http_build_query ($ date);// redirigir al encabezado IPN de PayPal (‘Ubicación:’ $ PayPalur. ‘?’.salida ();} Else {// manejar la respuesta de PayPal.} Paso 4-Respuesta recibida ahora PayPal enviará la respuesta, y la página PAGOY.PHP que hice leerá la respuesta.
Debemos agregar este código a la instrucción delse de nuestro script payment.php. Comprobaré si ya he procesado esta transacción antes de agregar el pago a la base de datos. // manejar la respuesta de PayPal. // Creó una conexión a la base de datos. $ db = new MySqli ($ dbconfig [‘host’], $ dbconfig [‘username’], $ dbconfig [‘contraseña’], $ dbconfig [‘name’]); // Asigna variables publicadas a la matriz de datos local. $ dat = [‘item_name’ => $ _post [‘item_name’], ‘item_number’ => $ _post [‘item_number’], ‘payment_status’ => $ _post [‘payment_stas’], ‘pagos_amount’ => $ _post [‘Mc_grross’], ‘PAYY_CURNENCY’ => $ _POST [‘MC_CURNENCY’], ‘TXN_ID’ => $ _POST [‘TXN_ID’], ‘RECIVER_EMAIL => $ _POST [‘ RECIN [‘Payer_email’], ‘Custom’ => $ _Post [‘Custom’],]; // Necesitamos verificar la transacción proviene de PayPal y verificar que no hemos procesado la transacción antes de agregar el pago a nuestra base de datos //. If (verifyTransction ($ _ post) && checktxnid ($ data [‘txn_id’)) {if (addpayment ($ date)! }} La función VerifyTransction verificará la autenticidad de la respuesta. Después de su llamada, la función se hará cargo de los datos recibidos de PayPal y los validará haciendo la solicitud de Curl a PayPal con los datos de la transacción recibida.
Si la respuesta es la misma, recibiremos el mensaje verificado y sabremos que todo está bien. Entonces el pago se agregará a la base de datos. VERIFYTANSACTION Función: función VerifyTransction ($ date) {global $ paypalur; $ req = ‘cmd = _notify-validate’; foreach ($ date as $ key => $ value) {$ value = urlecode (StripsLashes ($ value)); $ Valor = preg_replace (‘/(.moó^^0^d]) (%0a) (.*)/I’, ‘$ {1}%0d%0a $ {3}’, $ valor); // ipn arreglar $ req. = “& $ key = $ value”; } $ ch = curl_init ($ paypalur); Curl_setop ($ ch, curlopte_http_version, curl_http_version_1_1); curl_setpt ($ ch, curlopte_post, 1); curl_setpt ($ ch, curlopt_returntransfer, 1); Curl_setop ($ ch, curlopte_postfields, $ req); curl_setpt ($ ch, curlopt_sslversion, 6); Curl_setop ($ ch, curlopt_ssl_verifypeer, 1); Curl_setop ($ ch, curlopt_ssl_verifyhost, 2); Curl_setop ($ ch, curlopt_forbid_reuse, 1); curl_setpt ($ ch, curlopte_connecttimeout, 30); Curl_setop ($ ch, curlopt_httpheader, array (‘conexión: cierre’)); $ res = curl_exec ($ ch); if (! $ res) {$ errno = curl_errno ($ ch); $ errstr = curl_error ($ ch); curl_close ($ ch); Arrojar una nueva excepción (“Error de curl: [$ errno] $ errstr”); } $ info = curl_getInfo ($ ch); // Verifique la respuesta http $ httpcode = $ info [‘http_code’]; If ($ httpcode! } curl_close ($ ch); devolver $ res === ‘verificado’; } También podemos llamar a VerifyXnid. El propósito de la función es simple; Verifique que el valor de TXN_ID de PayPal ya exista en nuestra base de datos.
Después de verificar el pago, es una buena idea llamar a esta función y verificar si ya ha agregado la transacción a la base de datos. Función TXN_ID: función checktxnid ($ txnid) {global $ db; $ txnid = $ db-> real_escape_string ($ txnid); $ resultados = $ db-> consulta (‘select * de `pagos` donde txnid =’ ‘. $ txnid.’ ‘); ¡Devolver! $ Resultados-> num_rows; } Aquí, puede agregar cuántos cheques desea. Esta es la oportunidad de verificar los diferentes aspectos del pago. Paso 5 – Agregar el último paso después de verificar el pago, hacer el cheque adicional es agregar el pago a la base de datos. Crearemos una tabla de pago para almacenar los detalles de pago en el sistema de la base de datos. Aquí está el código para crear la tabla de pago en MySQL: Crear si no existe `pagos (` int (6) no nulo Auto_inment, `txnid` varchar (20) no nulo,` pagos_amount` (7,2) no nulo, “ PAYY_STATUS` VARCHAR (25) NO NULL, `itemide varchar (25) no nulo,` creatEttime` dateTime no null, clave primaria (`id`) motor = myisam default charset = utf8 auto_increment = 1; Luego necesitamos establecer la función para llamar a addPayment. Aquí está la función para hacer esta tarea: función addpayment ($ date) {db global; If (is_array ($ date)) {$ stmt = $ db-> preparar (‘insertar en `pagos (txnid, payment_amount, payment_status, itemId, creattime) valores (?,?,?,); $ stmt-> bind_param (‘sdsss’, $ date [‘txn_id’], $ date [‘payment_amount’], $ date [‘payment_status’], $ date [‘item_number’], data (‘ymd h: i: s’)); $ stmt-> ejecute (); $ STMT-> Close (); devolver $ db-> insert_id; } Retorno falso;
homefinance blog