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. 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: https://doc.open.alipay.com/docs/doc.htm?treeId=193 & amp;articleId=103419 & amp;docType=1
Choose the latest SDK version
Copy the maven coordinates and import them into the spring boot project pom file
Open the development document: https://opendocs.alipay.com/open/028r8t?scene=22
This is just a separate test of the computer website payment unified collection order and payment page interface.
Write an interface to facilitate demonstration, create a get request, and write the order information in the code
//Alipay payment interface @Controller @RequestMapping("/pay") public class AlipayTest {<!-- --> private String serverUrl="https://openapi.alipaydev.com/gateway.do"; private String appId="2021000122601685"; private String privateKey="MIIEvgIBADANBgkqhkiG9w0BAQEFAAASCBKgwggSkAgEAAoIBAQCCk5evhVhZL3kaWEN4ACD + xHoTfn0RqR7aoh2esSTHeca8bV77z4KYUYXH/76uG1ufeYX8CsI68fMTTIxTcvA1F/vctjCkyAS3f jo + DTPpQ5tZpXvJjbNhwXJwrNov/44Dsy727N + b6CAmz5C6vkNipTdekUlHO + 6EJmNgMo + ZgYuoEvinP/1JLST6IpcYj/QjGtG8cYStDlx6C3P2Xk7Jv//rOsMbem6bO5v7zZU4E29lV n5mZucxyPqDfRgyz2H + + EaNxDRRh6cdVxwntEImpn9Tap + Jv1tTEddI7pOnXqsOwy5lOEJ6r36g48OyXWOLum2x9bxZUs/6tg96VAgMBAAECggEAN7StlqTltHuJNQ2hBe9eQSjKRJmI3y8gQc5C6Z LLNSSH 2VitReDZuTNWPCj2DT7UHDaItFTVtG0oNd1mVtcmeS + 4Na7WS/3dusUef2v8fpTuTYcNNcoDxYLunL90u3H5AQCnKIkk + hu6qWyuU6eJLj8QgOf82JqZcueFQxFI/ 8Ahlv/Y3yfdDm5RfrpsgQKBgQDXT9v9inqZPYgQqTOfZwgtU9WLcuO3e8RaKZ8NUl67Y + M4iKoYoms9ZdBFDPdj5BAygncZpTv4wrJ5Fj1gVeuBMWwmf34WkopQwXt + GbmNHPVFe12XzjkyJBGE3d OG3k0hAadWIw4O2Ipx0IqQFzQdiNCU1cSCQKBgQCbQH1260iD0PF/tNvYyq/YDe + I9 + NrPgSe6f0gTOSFFo/Ni04T23vxCSdSt8mDlCULx71hxkr7uNYReUCI/ujXijlgyI/MOmd1AsDEfYceBXkEs OVjC4Zf4zYyvqqTArDdS6Hsn + Y3rwwEBa + hhTLvraCHZddbjbY7rlJttQKBgQCT2OiM/ywUUeY + 2pJ5aO4FEnAg7hdKwSbKY3v + ynB8kugBq750tcUoGTQVohPaY/y8j1uIfN/pj/bCOT AP/mtrdodEd8ceN + dxXheZ8YcQgwQk7E + tvm4rMH1WGzJ/2KyiTu8AgF/Cd4791L3/NyNdwSLil9vrlwQKBgQCNBsvxllDMzKRTKWr7R0Lss9v/ Q45mAHQaFttE2BRNgO0n/ ecQKBgCF4KzJxe0n + intzTGKgt4a8sBDeyjUIPjU3/ujGXbYWzgmHUFtHOIgTMCs8kmkJlI + xgjqnCUNicIr0hfkjtRGTw6Tw0MqDFX1/EfDJp2spv2rQDMZyKCJZwZ2QyZNz2yYdm1ukzxb JI/conKUSsujdhKEZZhchv2MWl2moscwn"; private String alipayPublicKey="MIIBIjANBgkqhkiG9QEFAAOCAQ8AMIIBCgKCAQEAhsM/TnpIff7e39eqsCLQwI8fBQ + 5lYcFjOrSw7p0ZsMETXXAS677MZTKw5JyHVTieg79708qvaYWZ58jYuViTqpBCnot + cEOnE ZcfP3TxeKReAH379bHUVQOz7h3uH0eDcFmi3GjwPBB9lmcJdTI6qD/XObiWJID1e + 7 + lcH1TrnG01SmPiZqkHX6uUW2ye + fZkbW9qjtyujNnADIWNb/D1R2qgAcHsuOVV4hniRQIDAQAB"; //Create order interface @ResponseBody @GetMapping("/create") public String create(){<!-- --> //Create connection AlipayClient alipayClient = new DefaultAlipayClient(serverUrl,appId,privateKey,"json", "UTF-8",alipayPublicKey,"RSA2"); AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); //order information JSONObject bizContent = new JSONObject(); bizContent.put("out_trade_no", "202100012260165"); bizContent.put("total_amount", 5.00); bizContent.put("subject", "test"); 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()){<!-- --> //success return response.getBody(); } else {<!-- --> //fail return "Call failed"; } } }
Pay attention to the configuration parameters:
- The value of the serverUrl parameter:
- Value of appId parameter:
- The values of privateKey and alipayPublicKey:
After configuring the parameter values, we then start the springboot project. The tomcat configured here uses port 8080.
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!
2. 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: https://www.cpolar.com/
2.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.
2.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 tomcat is configured with port 8080, 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 Create
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
3. Test public network access
Open the browser and enter the copied public network address + interface path
to access. The Alipay page appears to indicate successful access.
4. 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]
4.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 Keep
Prompt that the subdomain name is reserved successfully, copy the reserved second-level subdomain name
4.2 Configure second-level subdomain names
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
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 Update
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.
5. Use fixed second-level subdomain names for access
Open the browser and enter the fixed second-level subdomain + interface path
that was just configured successfully to access it. The Alipay page appears indicating that the access is successful.
Fill in the account name and payment password to test, log in to the console with the account name and payment password to view
Select the balance of the test account to make payment. The payment password can be seen on the console.
payment successful