Directorio de artículos
Reenviado del artículo de penetración remota de CSDN: pago del entorno de sandbox de Java Alipay, depuración remota de interfaz SDK [penetración de intranet]
1. Entorno de prueba
- Experto
- Bota de primavera
- jdk 1.8
2. Configuración local
Obtenga el SDK Java de pago de Alipay, el proyecto maven puede elegir la versión maven, el proyecto java ordinario se puede descargar de GitHub, aquí hay un ejemplo de maven
Enlace de descarga de SDK: https://doc.open.alipay.com/docs/doc.htm?treeId=193&articleId=103419&docType=1
Seleccione la última versión del SDK
Copie las coordenadas de Maven e impórtelas en el archivo pom del proyecto Spring Boot
Abra la documentación de desarrollo: https://opendocs.alipay.com/open/028r8t?scene=22
Aquí hay solo una prueba separada de la interfaz de página de pago y pedido unificado de pago del sitio web de la computadora.
Escriba una interfaz, para la conveniencia de la demostración, cree una solicitud de obtención y escriba la información del pedido en el código
//支付宝支付接口
@Controller
@RequestMapping("/pay")
public class AlipayTest {
private String serverUrl="https://openapi.alipaydev.com/gateway.do";
private String appId="2021000122601685";
private String privateKey="MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCCk5evhVhZL3kaWEN4ACD+xHoTfn0RqR7aoh2esSTHeca8bV77z4KYUYXH/76uG1ufeYX8CsI68fMTTIxTcvA1F/vctjCkyAS3fjo+DTPpQ5tZpXvJjbNhwXJwrNov/44Dsy727N+b6CAmz5C6vkNipTdekUlHO+6EJmNgMo+ZgYuoEvinP/1JLST6IpcYj/QjGtG8cYStDlx6C3P2Xk7Jv//rOsMbem6bO5v7zZU4E29lVn5mZucxyPqDfRgyz2H++EaNxDRRh6cdVxwntEImpn9Tap+Jv1tTEddI7pOnXqsOwy5lOEJ6r36g48OyXWOLum2x9bxZUs/6tg96VAgMBAAECggEAN7StlqTltHuJNQ2hBe9eQSjKRJmI3y8gQc5C6ZLLNSHXzselaEQHNd6mMjarPhg6zUV8wPH/wuvbsFOcF9tmMkFmxBiyjnGwV1pjYVmafMkpwh7jWkLk9UBLPTEbKN2+wqbuq08Pjc7et2cywRXjn8SrhQ6F47dZBspgkTDQ+PTpQ4unHjUeQVz55K2VitReDZuTNWPCj2DT7UHDaItFTVtG0oNd1mVtcmeS+4Na7WS/3dusUef2v8fpTuTYcNNcoDxYLunL90u3H5AQCnKIkk+hu6qWyuU6eJLj8QgOf82JqZcueFQxFI/8Ahlv/Y3yfdDm5RfrpsgQKBgQDXT9v9inqZPYgQqTOfZwgtU9WLcuO3e8RaKZ8NUl67Y+M4iKoYoms9ZdBFDPdj5BAygncZpTv4wrJ5Fj1gVeuBMWwmf34WkopQwXt+GbmNHPVFe12XzjkyJBGE3dOG3k0hAadWIw4O2Ipx0IqQFzQdiNCU1cSCQKBgQCbQH1260iD0PF/tNvYyq/YDe+I9+NrPgSe6f0gTOSFFo/Ni04T23vxCSdSt8mDlCULx71hxkr7uNYReUCI/ujXijlgyI/MOmd1AsDEfYceBXkEsOVjC4Zf4zYyvqqTArDdS6Hsn+Y3rwwEBa+hhTLvraCHZddbjbY7rlJttQKBgQCT2OiM/ywUUeY+2pJ5aO4FEnAg7hdKwSbKY3v+ynB8kugBq750tcUoGTQVohPaY/y8j1uIfN/pj/bCOTAP/mtrdodEd8ceN+dxXheZ8YcQgwQk7E+tvm4rMH1WGzJ/2KyiTu8AgF/Cd4791L3/NyNdwSLil9vrlwQKBgQCNBsvxllDMzKRTKWr7R0Lss9v/Q45mAHQaFttE2BRNgO0n/X7zMtEnZvU9go2e5JeyV8KEaqf6eTCbtnNnN0VXFwOo+zl7kP5fz5UMz1izUQgxdKD7sI208MmtZAvznhe47V1TDqYxq0KvNi4y64FAgwEuuMqiqFdSP6g4ecQKBgCF4KzJxe0n+intzTGKgt4a8sBDeyjUIPjU3/ujGXbYWzgmHUFtHOIgTMCs8kmkJlI+xgjqnCUNicIr0hfkjtRGTw6Tw0MqDFX1/EfDJp2spv2rQDMZyKCJZwZ2QyZNz2yYdm1ukzxbJI/conKUSsujdhKEZZhchv2MWl2moscwn";
private String alipayPublicKey="MIIBIjANBgkqhkiG9QEFAAOCAQ8AMIIBCgKCAQEAhsM/TnpIff7e39eqsCLQwI8fBQ+5lYcFjOrSw7p0ZsMETXXAS677MZTKw5JyHVTieg79708qvaYWZ58jYuViTqpBCnot+cEOnEZcfP3TxeKReAH379bHUVQOz7h3uH0eDcFmi3GjwPBB9lmcJdTI6qD/XObiWJID1e+XYzVgNKC+DXfJ2YN8NEuyRH5Zr862s3C6xd8BAYU1VW9ZfyAssQxILCOwQZ0qDOOq48GAhzDWwPG8oteJX7+lcH1TrnG01SmPiZqkHX6uUW2ye+fZkbW9qjtyujNnADIWNb/D1R2qgAcHsuOVV4hniRQIDAQAB";
//创建订单接口
@ResponseBody
@GetMapping("/create")
public String create(){
//创建连接
AlipayClient alipayClient = new DefaultAlipayClient(serverUrl,appId,privateKey,"json", "UTF-8",alipayPublicKey,"RSA2");
AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
//订单信息
JSONObject bizContent = new JSONObject();
bizContent.put("out_trade_no", "202100012260165");
bizContent.put("total_amount", 5.00);
bizContent.put("subject", "测试");
bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY");
request.setBizContent(bizContent.toString());
AlipayTradePagePayResponse response = null;
try {
response = alipayClient.pageExecute(request);
} catch (AlipayApiException e) {
e.printStackTrace();
}
if(response.isSuccess()){
//成功
return response.getBody();
} else {
//失败
return "调用失败";
}
}
}
Tenga en cuenta los parámetros de configuración:
- El valor del parámetro serverUrl:
- El valor del parámetro appId:
- Los valores de privateKey y alipayPublicKey:
Después de configurar los valores de los parámetros, comenzamos el proyecto springboot. El tomcat configurado aquí usa el puerto 8080
Después de que el inicio sea exitoso, abra el navegador para acceder a la dirección de la interfaz que escribimos anteriormente: http://localhost:8080/pay/create , la interfaz de Alipay parece indicar el éxito. Si falla, verifique los parámetros configurados.
3. Penetración de intranet
El servicio anterior de llamar al SDK para crear una orden de pago se ejecuta localmente. La limitación es que solo los proyectos locales pueden llamar a la interfaz para probar el pago. Si desea llamarlo de forma remota, debe exponer el servicio a la red pública.
Cpolar es una herramienta de penetración de intranet que admite los protocolos http/https/tcp, no limita el tráfico, es fácil de operar, no requiere IP de red pública, no requiere enrutadores y puede exponer fácilmente los servicios al acceso a la red pública.
Sitio web oficial de cpolar: https://www.cpolar.com/
3.1 Descargar e instalar la penetración de la intranet cpolar
Visite el sitio web oficial de cpolar, registre una cuenta y descargue e instale el cliente cpolar. Para obtener más información, consulte el tutorial de documentación para descargar e instalar.
3.2 Crear un túnel
Después de que cpolar se haya instalado correctamente, accedemos al puerto local 9200 en el navegador e iniciamos sesión en la interfaz web ui de Cpolar: http://localhost:9200 .
Haga clic en Administración de túneles en el tablero izquierdo - Crear túnel.Dado que el puerto 8080 está configurado en tomcat, necesitamos crear un túnel http que apunte al puerto 8080:
- Nombre del túnel: se puede personalizar, tenga cuidado de no duplicar el nombre del túnel existente
- Protocolo: protocolo http
- Dirección local: 8080
- Tipo de nombre de dominio: elija un nombre de dominio aleatorio de forma gratuita
- Región: Seleccionar China arriba
hacer clic创建
Haga clic en el estado en el panel izquierdo: lista de túneles en línea, puede ver que el túnel que acaba de crear ha generado una dirección de red pública correspondiente, un protocolo http, un protocolo https (sin los engorrosos pasos de configurar el certificado SSL) y configurarlo copiar pensar
4. Pruebe el acceso a la red pública
Abra el navegador e ingrese la copia 公网地址+接口路径
para visitar, y aparecerá la página de Alipay para indicar que la visita se realizó correctamente
5. Configure un nombre de subdominio de segundo nivel fijo
Dado que el túnel anterior creado con cpolar utiliza una dirección de red pública aleatoria, la dirección cambiará dentro de las 24 horas, lo que no favorece el acceso remoto a largo plazo. Por lo tanto, podemos configurar un nombre de subdominio de segundo nivel para él, que es una dirección fija y no cambiará aleatoriamente [ps: se ha archivado cpolar.cn]
Tenga en cuenta que el paquete cpolar debe actualizarse al paquete básico o superior. [cpolar.cn ha sido archivado]
5.1 Reservar un subdominio de segundo nivel
Visite el sitio web oficial de Cpolar , inicie sesión en el fondo del sitio web oficial de cpolar, haga clic en Reservado a la izquierda y busque el nombre de subdominio de segundo nivel reservado:
- Región: Seleccionar China VIP
- Nombre de dominio de segundo nivel: se puede personalizar
- Descripción: Comentarios, que se pueden personalizar.
hacer clic保留
Solicite que el nombre del subdominio se haya reservado correctamente, copie el nombre del subdominio de segundo nivel reservado
5.2 Configurar el nombre del subdominio de segundo nivel
Visite http://127.0.0.1:9200/ , inicie sesión en la interfaz de administración de la interfaz de usuario web de cpolar, haga clic en administración de túneles en el tablero izquierdo - lista de túneles, busque el túnel de prueba de la interfaz de pago y haga clic en editar a la derecha
Modifique la información del túnel y configure el nombre de subdominio de segundo nivel reservado con éxito en el túnel
- Tipo de nombre de dominio: seleccione un nombre de subdominio de segundo nivel
- Subdominio: complete el nombre del subdominio reservado
hacer clic更新
Después de la actualización, abra la lista de túneles en línea nuevamente y podrá ver que el túnel se ha convertido en un nombre de subdominio de segundo nivel fijo, copie el nombre de dominio
6. Use un nombre de subdominio fijo de segundo nivel para acceder
Abra el navegador e ingrese la configuración que se acaba de configurar correctamente para 固定二级子域名+接口路径
acceder, y aparece la página de Alipay para indicar que el acceso es exitoso
Complete la prueba de nombre de cuenta y contraseña de pago e inicie sesión en la consola para ver el nombre de cuenta y la contraseña de pago
Seleccione el saldo de la cuenta de prueba para el pago, y la contraseña de pago se puede ver en la consola
Pago exitoso