Este artículo comparte el código específico para Java usando Alipay para escanear el código para el pago, para su referencia, el contenido específico es el siguiente
Preparación
Primero, abra la cuenta de prueba de Alipay Sandbox, que incluirá cuentas de consumo y cuentas de beneficiarios
Escanee el código QR para descargar la aplicación móvil
Configuración básica
Paquete de jarra requerido
Alipayconfig
paquete com.alipay.config; import java.io.filewriter; import java.io.ioException; import java.util.resourceBundle;/ * * *Nombre de clase: AlipayConfig *Función: Configuración básica Class *Detalles: Establezca información relacionada con la cuenta y returación Ruta *Fecha de modificación: 2017-04-05 *Nota: *El siguiente código es solo un código de comisión para el Código de convenio para el código de retorno para la Testina de la Mertería. Los comerciantes pueden escribir de acuerdo con las necesidades de su propio sitio web y de acuerdo con los documentos técnicos, y no es necesario usar este código. *Este código es para aprender e investigar solo la interfaz Alipay, y solo se proporciona como referencia. */Clase pública AlipayConfig {// ↓↓↓atorioueloueloueloivinoamientoamientoitino para así "¡Configure tu información básica aquí // ID de aplicación, tu APPID y la cuenta de pago es la Cuenta Alipay Cepthing Public Static String app_id =" 2016080403162340 "; // Clave privada de comerciante, su formato PKCS8 RSA2 PRIVADO CLAVE PUBLIC STICT String Merchant_Private_Key = "Miievaid2tulssMawg5+F4NZBEXPNXI8NKQJPZEEAA =="; // Clave pública Alipay, ver la dirección: https://openhome.alipay.com/platform/keymanage.htm La clave pública Alipay correspondiente en el AppID. Cadena estática pública alipay_public_key = "miibijt26tltkar8s1erdwi25vibcmz7plmxvvumhf5tdbwfbmhus3qidaqab"; // La ruta de la página de notificación asíncrona del servidor requiere la ruta completa en el formato de http: //, y no puede agregar parámetros personalizados como? Id = 123. La red externa debe acceder normalmente. Public static String notify_url = "http: // localhost: 8080/alipay.trade.page.pay-java-utf-8/notify_url.jsp"; // Página Jump Notificación síncrona La ruta de página requiere la ruta completa de http: // format. Los parámetros personalizados como ID = 123 no se pueden agregar. Public static String return_url = "http: // localhost: 8080/examen/index/goumai"; // Método de firma Public static String sign_type = "rsa2"; // Formato de codificación de caracteres Cadena estática pública Charset = "UTF-8"; // Alipay Gateway public static string gatewayurl = "https://openapi.alipaydev.com/gateway.do"; // Alipay Gateway public static String log_path = "e: //"; // ↑↑↑gere. Pruebe {Writer = New FileWriter (log_path + "alipay_log_" + system.currentTimemillis () + ". txt"); escritor.write (espada); } catch (Exception e) {E.PrintStackTrace (); } finalmente {if (escritor! = null) {try {writer.close (); } catch (ioException e) {E.PrintStackTrace (); }}}}}}Controlador
// Generate a page with a QR code that can be used to scan the code to pay for payment @RequestMapping(value = "aliPay") public String aliPay(HttpServletResponse response,ModelMap map,String chapterId,HttpServletRequest request, String WIDout_trade_no,String WIDtotal_amount,String WIDsubject,String WIDbody) throws IOException, Alipayapiexception {// string a, string urlName, string Coune ...+"& a ="+a+"& urlname ="+urlname+"& couneM Alipayconfig.merchant_private_key, "json", alipayconfig.charset, alipayconfig.alipay_public_key, alipayconfig.sign_type); // Establecer el parámetro de solicitud AlipayTradepagePayRequest alipayRequest = new AlipayTradepagePayRequest (); alipayRequest.setReturnurl (alipayconfig.return_url+"? chapchid ="+chapchid); alipayRequest.setNotifyUrl (alipayconfig.notify_url); // paga id, cadena requerida out_trade_no = widout_trade_no; // Cantidad de pago, cadena requerida Total_amount = widtotal_amount; Total_amount = urlDecoder.Decode (Total_amount, "UTF-8"); // Transcoding // Nombre de orden, Cadena requerida SUJTA = widSubject; sujeto = urlDecoder.Decode (sujeto, "UTF-8"); // Descripción del producto, cuerpo nulo cuerpo = widbody; alipayRequest.setBizContent ("{/" out_trade_no/":/" + out_trade_no + "/", " +"/"total_AMOUNT/":/" + total_AMOUNT +"/"," + "/" Sujeto/":" + sujeto + "/", " +"/"Body/" + Body + "/", " + "/" TimeOut_express/":/" 1m/"," + "/" product_code/":/" fast_instant_trade_pay/"}"); // Solicitar el resultado de la cadena = alipayclient.pageExecute (alipayRequest) .getBody (); respuesta.setContentType ("text/html; charset = utf-8"); PrintWriter out = Response.getWriter (); out.println (resultado); regresar nulo; }Pague con éxito y devuelva la página (return_url)
La ruta de retorno después del éxito se toma, vaya al controlador, consulte la configuración en AlipayConfig para más detalles
// Haga clic para comprar y guardar el curso en la tabla de compras @RequestMapping (value = "Gooumai") @ResponseBody public ModelAndView GooUmai (String ChapchId, HttpServletRequest Req, String A, String UrlName, String Coune, MapeMap Map) {ModelAndView mav = new ModelandView (); MAP <String, String> MAP1 = new HashMap <String, String> (); // sysusertab login_user = sysUserService.getSySUserById (userId); Httpsession session = req.getSession (); Sysusertab login_user1 = (sysusertab) session.getAttribute ("login_user"); String userId = login_user1.getuserId (); // session.setattribute ("login_user", login_user); MAP1.put ("UserId", UserId); MAP1.put ("Capítulo", Capítulo); int num = sysbuyservice.getBuyCount (MAPP1); if (num == 0) {mapp1.put ("buyID", uuid.randomuuid (). toString (). reemplazar ("-", "")); sysbuyservice.insertBuy (MAPP1); } // consulta contenido del curso // string fanhui = showfh (req, capítulo, urlname, Coune, Map, a); mav.setViewName ("jsp/pay/paysuccess"); regresar mav; }Después de que el pago sea exitoso, la página salta a la página paysuccess.jsp.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.