[No public network IP intranet penetration] Java Alipay sandbox environment payment, SDK interface remote debugging

Table of contents

1. Test environment

2. Local configuration

3. Intranet penetration

3.1 Download and install cpolar intranet penetration

3.2 Create tunnel

4. Test public network access

5. Configure a fixed second-level subdomain name

5.1 Reserve a second-level subdomain name

5.2 Configure the second-level subdomain name

6. Use fixed second-level subdomain names for access


 

1. Test environment

  • Maven
  • Spring boot
  • Jdk 1.8

2. Local configuration

Obtain Alipay payment Java SDK. For maven projects, you can choose the maven version. Ordinary java projects can be downloaded from GitHub. Here we take maven as an example.

SDK download address: Ant Financial Open Platform-Document Center

2023011001

Choose the latest SDK version

2023011002

Copy the maven coordinates and import them into the spring boot project pom file

2023011003

2023011004

Open the development document: Mini Program Document-Alipay Document Center

This is just a separate test of the computer website payment unified collection order and payment page interface.

2023011005

Write an interface to facilitate demonstration, create a get request, and write the order information in the code

//支付宝支付接口
@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  "调用失败";
        }
    }
}

Bash

Copy

Pay attention to the configuration parameters:

  • The value of the serverUrl parameter:

2023011006

  • Value of appId parameter:

2023011007

  • The values ​​of privateKey and alipayPublicKey:

2023011008

2023011009

After configuring the parameter values, we then start the springboot project. The tomcat configured here uses port 8080.

2023011010

After the startup is successful, open the browser and access the interface address we wrote above: http://localhost:8080/pay/create . The Alipay interface appears to indicate success. If it fails, check the configured parameters!

2023011011

3. Intranet penetration

The above service that calls SDK to create payment orders runs locally. The limitation is that only local projects can call the test payment interface. If you want to call it remotely, you need to expose the service to the public network.

Cpolar is an intranet penetration tool that supports http/https/tcp protocols, does not limit traffic, is simple to operate, does not require a public IP address, or a router, and can easily expose services to the public network for access.

cpolar official website: cpolar - secure intranet penetration tool

3.1 Download and install cpolar intranet penetration

Visit the cpolar official website, register an account, and download and install the cpolar client. For details, please refer to the documentation tutorial to download and install.

20230116162253

3.2 Create tunnel

After cpolar is successfully installed, we access the local 9200 port on the browser and log in to Cpolar's web ui interface: http://localhost:9200 .

Click Tunnel Management on the left dashboard - Create Tunnel. Since port 8080 is configured in tomcat, we need to create an http tunnel pointing to port 8080:

  • Tunnel name: Customizable, be careful not to duplicate the name of an existing tunnel
  • Protocol: http protocol
  • Local address: 8080
  • Domain name type: Choose a random domain name for free
  • Region: Select China top

Click创建

2023011012

Click the status of the dashboard on the left - online tunnel list. You can see that the tunnel you just created has generated a corresponding public network address, an http protocol and an https protocol (avoiding the tedious steps of configuring the SSL certificate). Copy and think about it

2023011013

4. Test public network access

Open the browser and enter the copied code 公网地址+接口路径 to access. The Alipay page appears indicating that the access is successful.

20230116161201

202301161609

5. Configure a fixed second-level subdomain name

Since the tunnel created using cpolar above uses a random public network address, the address will change within 24 hours, which is not conducive to long-term remote access. Therefore, we can configure a second-level subdomain name for it. This address is a fixed address and will not change randomly [ps: cpolar.cn has been filed]

Note that you need to upgrade the cpolar package to the basic package or above. [cpolar.cn has been registered]

5.1 Reserve a second-level subdomain name

Visit the Cpolar official website , log in to the cpolar official website backend, click Reserve on the left, and find the reserved second-level subdomain name:

  • Region: Select China VIP
  • Second-level domain name: can be customized
  • Description: Notes, which can be customized

Click保留

2023011015

Prompt that the subdomain name is reserved successfully, copy the reserved second-level subdomain name

2023011016

5.2 Configure the second-level subdomain name

Visit http://127.0.0.1:9200/ , log in to the cpolar web UI management interface, click Tunnel Management - Tunnel List on the left dashboard, find the payment interface test tunnel, and click Edit on the right

2023011017

Modify the tunnel information and configure the successfully reserved second-level subdomain name into the tunnel.

  • Domain name type: Select a second-level subdomain name
  • Sub Domain: Fill in the successfully reserved second-level subdomain name

Click更新

2023011018

After the update, open the online tunnel list again. At this time, you can see that the tunnel has become a fixed second-level subdomain name. Copy the domain name.

2023011019

6. Use fixed second-level subdomain names for access

Open the browser and enter the configuration you just configured successfully to 固定二级子域名+接口路径access. The Alipay page appears indicating that the access is successful.

2023011020

Fill in the account name and payment password to test, log in to the console with the account name and payment password to view

2023011021

Select the balance of the test account to make payment. The payment password can be seen on the console.

2023011022

2023011023

payment successful

2023011024

Reprinted from cpolar pole cloud article: Java Alipay sandbox environment payment, SDK interface remote debugging [intranet penetration] 

Guess you like

Origin blog.csdn.net/weixin_74318097/article/details/132894836