English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Primero, por favor, solicite una cuenta de interfaz de pago inmediato en Alipay, necesitará presentar documentos relevantes para la solicitud. Luego, según la documentación de la API de pago inmediato, realice la conexión. La documentación de la API proporciona demo en varias versiones de idioma, aquí he descargado el demo en php, luego he realizado las operaciones de modificación relevantes. También puede integrar nuevamente el código de la versión de demo, aquí temporalmente no he realizado la重构 de código para garantizar que el proceso de recarga de pago inmediato funcione correctamente.
前台表单提交
<form action="/pay/alipayapi.php" class="tm-panel-small uk-form uk-form-stacked" method="post" target="_blank"> <div class="element" style="margin-top:60px;"> </div> <div class="uk-form-row"> <div class="uk-form-controls"> <label for="form-username" class="uk-form-label" style="display:inline-block;padding: 0 10px;vertical-align: middle;margin-left:-20px;">订单序号:</label> <input class="uk-form-width-large" type="text" name="WIDout_trade_no" id="out_trade_no" value="<?php echo trim($_GET['orderid']);?>" > <br> </div> </div> <div class="uk-form-row"> <div class="uk-form-controls"> <label for="form-username" class="uk-form-label" style="display:inline-block;padding: 0 10px;vertical-align: middle;margin-left:-20px;">商品名称:</label> <input class="uk-form-width-large" type="text" name="WIDsubject" value="<?php echo trim($_GET['orderid']);?>" > <br> </div> </div> <div class="uk-form-row"> <div class="uk-form-controls"> <label for="form-username" class="uk-form-label" style="display:inline-block;padding: 0 10px;vertical-align: middle;margin-left:-20px;">付款金额:</label> <input class="uk-form-width-large" type="text" name="WIDtotal_fee" value="<?php echo trim($_GET['amt']);?>"> <br> </div> </div> <div class="uk-form-row"> <div class="uk-form-controls"> <label for="form-username" class="uk-form-label" style="display:inline-block;padding: 0 10px;vertical-align: middle;margin-left:-20px;">商品描述:</label> <input class="uk-form-width-large" type="text" name="WIDbody" value="订单测试支付"> <br> </div> </div> <input type="hidden" name="uid" value="<?php echo $_GET['uid'];?>"> <input type="hidden" name="codes" value="<?php echo $_GET['code'];?>"> <input type="hidden" name="tags" value="<?php echo $_GET['tag'] ?>"> <div class="uk-form-row"> <input class="uk-button uk-button-primary uk-button-large uk-width-1-1" type="submit" class="alisubmit" value ="Confirmar pago"> </div> </div> </form>
Configurar el archivo de configuración alipay.config.php, configure principalmente los siguientes parámetros
$alipay_config['partner'] Establecer ID de cuenta de suscripción
$alipay_config['key'] Establecer MD5Verificación de key
$alipay_config['notify_url'] Establecer la dirección de llamada asincrónica
$alipay_config['return_url'] Establecer la dirección de retorno de llamada
$alipay_config['transport'] Establecer el tipo de protocolo, por defecto http
$alipay_config['partner'] = 'xxxxxxxxxxxx'; //Cuenta de pago de Alipay, con2088La cadena comienza por16Cadena de caracteres compuesta por números puros, generalmente la cuenta de recepción es la cuenta de suscripción $alipay_config['seller_id'] = $alipay_config['partner']; // MD5Clave, código de verificación de seguridad, compuesta por números y letras32Cadena de caracteres, ver la dirección: https://b.alipay.com/order/pidAndKey.htm $alipay_config['key'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // Página de notificación asincrónica del servidor, requiere http://ruta completa del formato, no se puede agregar &63;id=123Estos parámetros personalizados deben ser accesibles desde la red exterior $alipay_config['notify_url'] = "http://xx.xx.xx.xx/pay/notify_url.php"; // Notificación de sincronización de redirección de página, requiere http://ruta completa del formato, no se puede agregar &63;id=123Estos parámetros personalizados deben ser accesibles desde la red exterior $alipay_config['return_url'] = "http://xx.xx.xx.xx/pay/return_url.php"; //Método de firma $alipay_config['sign_type'] = strtoupper('MD5); //Formato de codificación de caracteres, actualmente admite gbk o utf-8 $alipay_config['input_charset']= strtolower('utf-8); //Dirección de la ruta del certificado ca, utilizado para la verificación ssl en curl //Asegúrese de que el archivo cacert.pem esté en el directorio actual $alipay_config['cacert'] = getcwd().'\\cacert.pem'; //Modo de acceso, según si su servidor admite el acceso ssl, si admite, seleccione https; si no admite, seleccione http $alipay_config['transport'] = 'http'; // Tipo de pago, no se requiere modificación $alipay_config['payment_type'] = "1"; // Tipo de producto, no se requiere modificación $alipay_config['service'] = "create_direct_pay_by_user";
Después de que se complete el procesamiento del comercio, se enviará la información del pedido y el estado de la transacción a la URL de retorno especificada (return_url.php), puede determinar si la transacción es exitosa mediante el estado del pedido devuelto, si es exitosa, pasará al siguiente lógica (su propia lógica de procesamiento de pedidos), de lo contrario, regrese con error.
<?php /* * * Función: Página de notificación de salto de página sincronizada de Alipay * Versión:3.3 * Fecha:2012-07-23 * Notas: * El siguiente código se proporciona solo como ejemplo para facilitar la prueba del comerciante, el comerciante puede escribir según sea necesario según la documentación técnica de su sitio web y no es obligatorio usar este código. * Este código se proporciona solo para fines educativos y de investigación sobre las interfaces de Alipay y solo como una referencia. *************************Descripción de las funciones de la página************************* * Esta página se puede probar en la computadora local * Se pueden agregar códigos para embellecer la página (como HTML) y códigos de lógica de negocios del comerciante * Esta página puede ser depurada con herramientas de desarrollo de PHP o utilizando la función de escritura de texto logResult, que está desactivada por defecto, véase la función verifyReturn en alipay_notify_class.php require_once("alipay.config.php"); require_once("lib/alipay_notify.class.php"); ?> <?php //计算得出通知验证结果 $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyReturn(); if($verify_result) {//验证成功 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 //商户订单号^M $out_trade_no = $_GET['out_trade_no']; //支付宝交易号^M $trade_no = $_GET['trade_no']; //交易状态 $trade_status = $_GET['trade_status']; $total_fee = $_GET['total_fee']; //获取用户返回数据 $user_info = $_GET['extra_common_param']; $user_arr = explode('.',$user_info); $uid = $user_arr[0]; $code = $user_arr[1 $tags = $user_arr[2 if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') { $types = "alipay"; $user_url = "/user_obj/do_orderinfo.php"; die("<script>;window.location='{$user_url}&"63;uid={$uid}&code={$code}&tags={$tags}&payAmount={$total_fee}&order={$out_trade_no}&types={$types}';</script>"); //Determinar si este pedido ya ha sido procesado en el sitio web del comerciante //Si no ha realizado un procesamiento, según el número de orden (out_trade_no) busque los detalles del pedido en el sistema de pedidos del sitio web del comerciante y ejecute el programa de negocio del comerciante //Si ha realizado un procesamiento, no ejecute el programa de negocio del comerciante } else { echo "trade_status=".$_GET['trade_status']; } var_dump($verify_result); echo "Verificación exitosa<br />"; //——Por favor, escriba el programa según su lógica de negocio (el código anterior solo se proporciona como ejemplo)—— ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { //Fallo de verificación //Si desea depurar, consulte la función verifyReturn en la página alipay_notify.php echo "Fallo de verificación"; } ?> <title>Interfaz de transacción de pago instantáneo de Alipay</title> </head> <body> </body> </html>
Lo que se mencionó anteriormente es lo que el editor les ha presentado sobre la integración de PHP con la función de pago instantáneo de Alipay, espero que les haya sido útil. Si tienen alguna pregunta, déjenme un mensaje, el editor responderá a tiempo. También agradezco muchísimo el apoyo de todos a la página web de tutorial de alarido!
Declaración: El contenido de este artículo se obtiene de la red, es propiedad del autor original, el contenido se contribuye y carga de manera autónoma por los usuarios de Internet, este sitio no posee los derechos de propiedad, no ha sido editado artificialmente y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de copyright, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, por favor reemplace # con @) para denunciar, y proporcione evidencia relevante. Una vez verificada, este sitio eliminará inmediatamente el contenido sospechoso de infracción.