Este artigo compartilha o código específico para Java usando o Alipay para digitalizar o código para pagamento, para sua referência, o conteúdo específico é o seguinte
Preparação
Primeiro, abra a conta de teste da Alipay Sandbox, que incluirá contas de consumidores e contas de beneficiários
Digitalize o código QR para baixar o aplicativo móvel
Configuração básica
Pacote de jar exigido
Alipayconfig
pacote com.alipay.config; importar java.io.filewriter; importar java.io.ioException; importar java.util.resourcebundle;/ * * *Nome da classe: alipayconfig *função: classe de configuração básica *Detalhes: Definir informações relacionadas à conta e de retorno *Data de modificação: 2017-04-444440404040505. teste. Os comerciantes podem escrever de acordo com as necessidades de seu próprio site e de acordo com documentos técnicos, e não é necessário usar esse código. *Este código é para aprender e pesquisar apenas a interface Alipay e é fornecida apenas como referência. */Classe pública Alipayconfig {// ribula pleira aquenal confrere suas informações básicas aqui // ID do aplicativo, seu APPID e a conta de pagamento é a conta alipay correspondente public static string app_id = "2016080403162340"; // Chave privada do comerciante, seu formato pkcs8 RSA2 Chave privada Public Static String Merchant_private_key = "miievaid2tulsssmawg5+f4nzbexpnxi8nkqjpzeaa =="; // Alipay Public Key, veja o endereço: https://openhome.alipay.com/platform/keymanage.htm A chave pública de Alipay correspondente sob o Appid. public static string alipay_public_key = "miibijt26tltkar8s1erdwi25vibcmz7plmxvvumhf5tdbwfbmhus3qidaqab"; // O caminho da página de notificação assíncrona do servidor requer o caminho completo no formato de http: // e não pode adicionar parâmetros personalizados como? Id = 123. Deve ser acessado normalmente pela rede externa. public static string notify_url = "http: // localhost: 8080/alipay.trade.page.pay-java-utf-8/notify_url.jsp"; // Página Jump Página de notificação síncrona de salto requer o caminho completo do formato http: //. Parâmetros personalizados como ID = 123 não podem ser adicionados. Public static string return_url = "http: // localhost: 8080/exame/index/goumai"; // Método de assinatura public static string Sign_type = "rsa2"; // Formato de codificação de caracteres public static string charset = "utf-8"; // alipay gateway public static string gatewayurl = "https://openapi.alipaydev.com/gateway.do"; // alipay gateway public static string log_path = "e: //"; // ↑↑↑guais, configure suas informações básicas aqui/*** Escreva logs para testes fáceis (consulte os requisitos do site, você também pode alterar para armazenar registros no banco de dados)* @param sword para escrever conteúdo de texto no log*/public static void Logresult (String Sword) {FileBeriter tente {writer = new FileWriter (log_path + "alipay_log_" + system.currenttimemillis () + ". txt"); writer.write (espada); } catch (Exceção e) {e.printStackTrace (); } finalmente {if (writer! = null) {try {writer.close (); } catch (ioexception e) {e.printStackTrace (); }}}}}}Controlador
// gera uma página com um código QR que pode ser usado para digitalizar o código para pagar pelo pagamento @RequestMapping (value = "alipay") public string alipay (httpServletResponse resposta, mapa de modelMap, strings Capítulo, httpSetlestleQuest, string widout_trade_no, widtotal_amount AlipayApiException{// String a,String urlName,String couName...+"&a="+a+"&urlName="+urlName+"&couName="+couName //Get initialized AlipayClient AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, Alipayconfig.merchant_private_key, "json", alipayconfig.charset, alipayconfig.alipay_public_key, alipayconfig.sign_type); // Defina o parâmetro de solicitação alipaytradePagePayRequest AlipayRequest = new AlipayTraDePagePayRequest (); alipayRequest.setReturnUrl (alipayconfig.return_url+"? Capítulo ="+capítulo); alipayRequest.setNotifyurl (alipayconfig.notify_url); // ID de pagamento, string necessária out_trade_no = widout_trade_no; // Valor do pagamento, string necessária total_amount = widtotal_amount; total_amount = urldecoder.decode (total_amount, "utf-8"); // Transcoding // Nome do pedido, String necessária sujeito = widsubject; sujeito = urldecoder.decode (sujeito, "utf-8"); // Descrição do produto, corpo de sequência nula = widbody; alipayRequest.setBizContent ("{/" out_trade_no/":/" + out_trade_no + "/", " +"/"total_amount/":/" + total_amount +"/"," + "/" sujeito/":/" + "/"/"," ""/"/"/"/"/":"/"/" subject/" +" + "/", "" "/"/"/" "/" timeout_express/":/" 1m/"," + "/" product_code/":/" fast_instant_trade_pay/"}"); // solicita string resultado = alipayclient.pageExecute (alipayRequest) .getbody (); Response.setContentType ("Texto/html; charset = utf-8"); PrintWriter out = Response.getWriter (); out.println (resultado); retornar nulo; }Pague com êxito e devolva a página (return_url)
O caminho de retorno após o sucesso é realizado, vá para o controlador, consulte a configuração no Alipayconfig para obter detalhes
// Clique para comprar e salvar o curso na tabela de compras @RequestMapping (Value = "Goumai") @ResponseBody Public ModelAndView Goumai (String Capítulo, HttpServletRequest Req, String A, String UrlName, String Couname, ModelMap Map) {ModelAndView Mav = New ModelAndView (); Mapa <string, string> map1 = new hashmap <string, string> (); // sysusertab login_user = sysuserService.getsysUserById (userID); Session httpSession = 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 (). substituir ("-", "")); sysbuyService.insertbuy (MAPP1); } // consulta conteúdo do curso // string faNHui = showfh (req, capítulo, urlname, conselho, mapa, a); Mav.SetViewName ("JSP/Pay/Paysuccess"); retornar mav; }Depois que o pagamento for bem -sucedido, a página salta para a página Paysuccess.jsp.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.