2021-02-11-Acesso ao site JavaWeb pagamento Alipay

Prefácio

  • Hoje gostaria de compartilhar com vocês como acessar o pagamento Alipay, embora possa não ser necessário, afinal, uma empresa maior não deixará um funcionário comum escrever um módulo financeiro, mas e se você for para uma pequena empresa? Haha estou brincando
  • Este blog listará as etapas para acessar o Alipay. Se você não entende, pode perguntar a mim ou ao Baidu.

Etapas preliminares

  • Para Alipay abrir plataforma para registrar uma conta
  • Vá para a central de documentos para localizar o documento de pagamento do site do computador , clique para abri-lo diretamente para ver o acesso rápido

Acesso

pom.xml

  • Clique no link da figura para entrar e ver o link do qual o maven depende, basta entrar e copiarItem da lista
  • A dependência que usei antes
19年11月使用的依赖
<!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java -->
<dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-sdk-java</artifactId>
    <version>3.7.110.ALL</version>
</dependency>

Obtenha uma conta de teste em um ambiente de sandbox e a conta que paga por ela

Insira a descrição da imagem aqui

  • Algumas informações que o controlador precisa preencher e a conta de teste do pagamento do código de varredura estão na imagem.
    Insira a descrição da imagem aqui

A chave pública chave privada pode ser gerada pela seguinte ferramenta

  • Link: https://pan.baidu.com/s/1GNB1V3-cUNTAlvHKl0_x8w
    Código de extração: 2dqo
  • Você também pode baixá-lo na central de documentos por conta própria

Insira a descrição da imagem aqui

Camada de controle

  • Depois de concluir as etapas acima, você deve escrever o código na camada Controlador do seu projeto.
  • O controlador a seguir é copiado diretamente do documento de acesso e, em seguida, algumas informações e chave pública do meu projeto são preenchidas
  • Se você não entendeu, pergunte-me ou leia a documentação de acesso. A documentação de acesso é muito detalhada, muito melhor que o WeChat
@RequestMapping(value = "/pay")
    public void pay(HttpServletResponse httpResponse, String oid) throws Exception {
        // 1.获得初始化的AlipayClient
        AlipayClient alipayClient = new DefaultAlipayClient(

                // 支付接口url
                //https://openapi.alipaydev.com/gateway.do
                "https://openapi.alipaydev.com/gateway.do",
                // APPI
                "2016100656227",
                // 商家的私钥
                "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCuRzePWKineX1AKR5780URiwxC3ObTQJfBtSCsQxLs+xmYPQS0YBQX/eIGkKB14tPXrVt8zvssNkcN7GaaX82b3CvOX0azZHL9lZAyDjPUkhlVp0SnyP2pO75EiMw+Ldy8pDPyzTcCERaTbZWn829JsW1urR/6zUk7waAb7QTB3G2RABaH7jNfihVdP1hfseKmZCuvSaqWBsd18q6YRzedrVOOTHFxEO0RjXk+Q/3HnI+jj9FBM1GUlsLlG7ok/GZCoilSJFl7D7M90qo1YRqKcranT+3M1IqETPWMNUSrvT/potAg+KG65t9/mQr7sE2RfBd/Pq1P/Ck/R99dalcJAgMBAAECggEAHSnvwz4r4vKyogT/g/B+s2PYZmv++IULoC/GSu1igmO2scIsQl79ndIve7fCElgl6Saqc6VTZN+kXlEcDmNPzfA3KG7LLwP1NjhMDARSahUUxj+afpVk1WgY+/EEdLdKBAtaYhwzQ1ZGt98TtypGikd1r5qrClZGFgjd2S59qE8KgKVpTrjB7KX25dqVWnpsgkU6EDpRowMH5x7qgyznfB0BVupCF88JFJES83vDdGkcXqYpkJcP7jKQ5bk4gQD0XzXjymMbQxD4qmWEUwOjvEt3+DioRcCzYwdJFMelpZXuncXo+gXG8MB22WVE4Co5ANScS19Hu/kN6qwkUT8sTQKBgQDwfZaXz8nrzSK2DNDFRjcPH+HxsxC9o79sC+3zvkG1jgAdluLIAvZAwR3yThxTF232rpubwNUKAUNhZoD9fPLAQ2emOYpccVYq5bnsnNkU067EcW7G4NcBogySxG6jB/OZUN5Ri6YXI3yLeFsH8D3VadMvSIJalO05WEVkH4nHRwKBgQC5hHyFOpRbPYg55mXc6Gsj5tO7SyKi6zaxPe2hDka2WT3U+qqxzv85gB8NcwfE4jIGrwKBgEHx1lGFgTbtqH7sZ0kfVPZuFtV839MJyWc3nECj0n7/Oft7HzIVYqQN5vvg6SpgKlBBaIKmuwAdXa4ZJ+obWTsZ3sIEgxz+cO2uZaqyv3k++CAvaTDwJ7QG0WO7Cm4WnPznyHWhrEH16gJWS6/wVFSl4pQtSp5g9gq/1ThWHFoBAoGBANK6OAuVKKdRzB+NcUe6jwXsxHhThA9alhvq2HRFD6QLKgYpgQ/mbGVkgDoFL8a7Adjrl8HojdfkS8up7O+SPW6lo0aCVLfjbgS86tBV0ZxrtLP5RG0IfpayH+N6HgMiEz1HR5qWGPC9rCUGvtgZqfwNNQ5qmOFeJM4PKRx6QP4o",

                // 格式化编码
                "JSON",

                // 编码格式
                "utf-8",

                // 支付宝的公钥(在沙箱环境中可以获取)
                "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC+n7jVK2EtqhtynNGDxdFVYrwT8jP2gu3VsRu7CSfdsAfuDTrwmeuKeaQCBQ19gSAslwTzfip8ebIsiA6jnhRrpNbd+c3FxBxHR6tB6pG2tvBPB6EtQAStRTjPWkiTF1laTbcynuKsiW8X4dgX92PxPfW/Fx8bHgDgxrEBhrURUtZHuQh6VBdUyLHAnpy2DU5K1gw3s8anGoOMnc4tFsXW4yDEZQrspxbhtLiU7tWc4fvd4GEQ7Ye7OoPIWtUZq1iyra8TMtT2KIhyYRqj+1K21HyMsJkmf0cvwIDAQAB",

                // 签名的算法
                "RSA2");

        // 2.创建API对应的request
        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
        alipayRequest.setReturnUrl("http://localhost:8081/"); // 用户支付完比后跳转到页面,同步
        // 用户支付成功异步通知的请求
        alipayRequest.setNotifyUrl("http://8srwgj.natappfree.cc/updateOrder");//在公共参数中设置回跳和通知地址


        Order order = orderService.getOrderById(oid);

        // 订单的信息都是封装到下面的
        alipayRequest.setBizContent("{" +
                "    \"out_trade_no\":" + oid + "," +
                "    \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," +
                "    \"total_amount\":" + order.getTotalPrice() + "," +
                "    \"subject\":\"Iphone6 16G\"," +
                "    \"body\":\"Iphone6 16G\"," +
                "    \"passback_params\":\"merchantBizType%3d3C%26merchantBizNo%3d2016010101111\"," +
                "    \"extend_params\":{" +
                "    \"sys_service_provider_id\":\"2088511833207846\"" +
                "    }" +
                "  }");//填充业务参数


        String form = "";
        try {
            form = alipayClient.pageExecute(alipayRequest).getBody(); //调用SDK生成表单
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
        httpResponse.setContentType("text/html;charset=" + "utf-8");
        httpResponse.getWriter().write(form);//直接将完整的表单html输出到页面
        httpResponse.getWriter().flush();
        httpResponse.getWriter().close();
    }
  • Preste atenção aos dois links
  • alipayRequest.setReturnUrl ("http: // localhost: 8081 /"); // O usuário salta para a página após o pagamento ser concluído, de forma síncrona, ele é enviado pelo navegador, para que você possa usar localhost
    //
    AlipayRequest para notificação assíncrona de pagamento bem-sucedido . setNotifyUrl ("http://w5g9y4.natappfree.cc/updateOrder"); // Defina o salto de retorno e o endereço de notificação nos parâmetros públicos
  • Ambos os links são redirecionados por Alipay. O primeiro link é a página para a qual o pagamento é bem sucedido e está sincronizado. Você pode especificar sua página inicial ou a página de sucesso do pagamento, e o segundo link é para pular após o pagamento ser bem sucedido. Vá a uma solicitação assíncrona enviada antes do primeiro link. Essa solicitação pode ser enviada ao controlador para o qual você deseja pular para fazer algumas operações, como alterar o status não pago do pedido para o status pago

Pagamento simulado

  • Pagamento da versão web

Insira a descrição da imagem aqui

  • Você também pode clicar no link na imagem para baixar um aplicativo de pagamento Alipay de simulação de telefone celular

Acho que você gosta

Origin blog.csdn.net/qq_41270550/article/details/113779086
Recomendado
Clasificación