Java payment SDK interface remote debugging - Alipay sandbox environment [public network address debugging]

Forwarded from the article of CSDN remote penetration: Java Alipay sandbox environment payment, SDK interface remote debugging [intranet penetration]

1. Test environment

  • Maven
  • Spring boot
  • Jdk 1.8

2. Local configuration

Obtain Alipay payment Java SDK, maven project can choose maven version, ordinary java project can be downloaded from GitHub, here is an example of maven

SDK download link: https://doc.open.alipay.com/docs/doc.htm?treeId=193&articleId=103419&docType=1

2023011001

Select the latest SDK version

2023011002

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

2023011003
2023011004

Open the development documentation: https://opendocs.alipay.com/open/028r8t?scene=22

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

2023011005

Write an interface, for the convenience of 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  "调用失败";
        }
    }
}

Note the configuration parameters:

  • The value of the serverUrl parameter:

2023011006

  • The value of the appId parameter:

2023011007

  • The values ​​of privateKey and alipayPublicKey:

2023011008
2023011009

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

2023011010

After the startup is successful, open the browser to 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!

insert image description here

3. Intranet penetration

The above service of calling SDK to create a payment order runs locally. The limitation is that only local projects can call the interface for testing payment. 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 easy to operate, does not require public network IP, and does not require routers, and can easily expose services to public network access.

cpolar official website: https://www.cpolar.com/

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 a tunnel

After cpolar is successfully installed, we access the local port 9200 on the browser and log in to the web ui interface of Cpolar: 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: can be customized, be careful not to duplicate the existing tunnel name
  • 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 on the left dashboard - list of online tunnels, you can see that the tunnel just created has generated a corresponding public network address, one http protocol, one https protocol (without the cumbersome steps of configuring ssl certificate), and set it to copy think down

2023011013

4. Test public network access

Open the browser and enter the copied 公网地址+接口路径to visit, and the Alipay page appears to indicate that the visit is successful

20230116161201

insert image description here

5. Configure a fixed second-level subdomain name

Since the above tunnel created by using cpolar 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, which is a fixed address and will not change randomly [ps: cpolar.cn has been filed]

Note that the cpolar package needs to be upgraded to the basic package or above. [cpolar.cn has been filed]

5.1 Reserve a second-level subdomain

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

  • Region: Select China VIP
  • Second-level domain name: can be customized
  • Description: Remarks, 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 the tunnel management on the left dashboard - tunnel list, 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 reserved sub-domain name

click更新

2023011018

After updating, open the online tunnel list again, and you can see that the tunnel has become a fixed second-level subdomain name, copy the domain name

2023011019

6. Use a fixed second-level subdomain name for access

Open the browser and enter the configuration that has just been successfully configured to 固定二级子域名+接口路径access, and the Alipay page appears to indicate that the access is successful

insert image description here

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

2023011021

Select the balance of the test account for payment, and the payment password can be seen in the console

insert image description here

2023011023

payment successful

2023011024

Guess you like

Origin blog.csdn.net/qq_43289447/article/details/130191693