Spring Boot atraca el pago personal sin visa de xorpay

Spring Boot atraca el pago personal sin visa de xorpay

xorpay admite muchos métodos de pago, lo cual es una buena noticia para los webmasters personales, ya que es muy cómodo de usar. Sin embargo, las demostraciones oficiales no son muy buenas, aquí compartiré el proceso de acoplamiento: xorpay
Insertar descripción de la imagen aquí

1. Preparación preliminar

Primero, debe solicitar el pago de WeChat. Después del registro, simplemente siga las instrucciones del sitio web. Si tiene alguna pregunta, consulte directamente con el servicio de atención al cliente. El servicio de atención al cliente es muy bueno excepto por la lentitud para responder los mensajes.
El sitio web oficial tiene información de contacto de servicio al cliente.

2. Crea un controlador y completa la información básica.

String name = "测试商品";    //商品名称
String payType = "native";      /支付方式,一般为 native
String price = "0.01";         //价格
String orderId = new Date().toString();      //平台订单号,需要唯一
String notifyUrl = "https://xorpay.com/main";       //回调地址,测试可以用这个,实际项目中需要修改
String appSecret = "youAppSecret";      //你得appSecret-xorpay后台查看

3. Establecer los parámetros del cuerpo de la solicitud

// 设置请求体参数
MultiValueMap<String, String> requestBody = new LinkedMultiValueMap<>();
requestBody.add("name", name);
requestBody.add("pay_type", payType);
requestBody.add("price", price);
requestBody.add("order_id", orderId);
requestBody.add("notify_url", notifyUrl);

4. Generar firma MD5

// 拼接参数值
StringBuilder sb = new StringBuilder();
for (List<String> value : requestBody.values()) {
    
    
    sb.append(value.get(0));
}
sb.append(appSecret);
// 计算MD5签名
String sign =  DigestUtils.md5DigestAsHex(sb.toString().getBytes());

5. Parámetros completos

requestBody.add("sign", sign);       //设置sign
requestBody.add("order_uid", "api-test-user");      //订单用户-可以不传
requestBody.add("more", "");        //订单其他信息,回调时原样传回-可以不传

6. Enviar una solicitud

// 创建RestTemplate对象
RestTemplate restTemplate = new RestTemplate();
// 设置请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
// 发送POST请求
String url = "http://xorpay.com/api/pay/XXX";	//XXX需要替换成你的aid,xorpay后台查看
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST,
       		new HttpEntity<>(requestBody, headers), String.class);

7. Encapsule la clase Vo para recibir datos de retorno.

@Data
public class XorpayVo {
    
    
    private String status;
    private Map<String, String> info;
    private String expires_in;
    private String aoid;
}

8. Procese los datos devueltos.

// 处理响应
if (response.getStatusCode().is2xxSuccessful()) {
    
    
    String responseBody = response.getBody();
    // 将字符串解析为JSONObject对象
    JSONObject jsonObject = JSONObject.parseObject(responseBody);
    // 将JSONObject对象转换为Map对象
    XorpayVo xorpayVo = jsonObject.toJavaObject(XorpayVo.class);
    return xorpayVo.getInfo().get("qr");
} else {
    
    
    return "";
}

9. Página de inicio-index.html

<img />

<script src="https://cdn.bootcss.com/jquery/3.6.0/jquery.min.js"></script>
<script>
    $(document).ready(function() {
      
      
        $.get("/getQr/getSrc", function(data) {
      
      
            // 在成功回调函数中设置img元素的src属性
            $("img").attr("src", "http://xorpay.com/qr?data=" + data);
        });
    });
</script>

Una vez iniciado el proyecto, visite: http://localhost:8080/indexl.html para ver el código QR de pago
Insertar descripción de la imagen aquí

10. Adquisición del código fuente

Sigue la cuenta oficial y responde.saludListo para recibir
Escanea el código QR para seguir

Supongo que te gusta

Origin blog.csdn.net/kkwyting/article/details/132690447
Recomendado
Clasificación