b2c電子商務(wù)網(wǎng)站制作商旅平臺(tái)app下載
文章目錄
- 1.測試環(huán)境
- 2.本地配置
- 3. 內(nèi)網(wǎng)穿透
- 3.1 下載安裝cpolar內(nèi)網(wǎng)穿透
- 3.2 創(chuàng)建隧道
- 4. 測試公網(wǎng)訪問
- 5. 配置固定二級子域名
- 5.1 保留一個(gè)二級子域名
- 5.2 配置二級子域名
- 6. 使用固定二級子域名進(jìn)行訪問
轉(zhuǎn)發(fā)自cpolar內(nèi)網(wǎng)穿透的文章:Java支付寶沙箱環(huán)境支付,SDK接口遠(yuǎn)程調(diào)試【內(nèi)網(wǎng)穿透】
1.測試環(huán)境
- Maven
- Spring boot
- Jdk 1.8
2.本地配置
獲取支付寶支付Java SDK,maven項(xiàng)目可以選擇maven版本,普通java項(xiàng)目可以在GitHub下載,這里以maven為例
SDK下載地址:[https://doc.open.alipay.com/docs/doc.htm?treeId=193&articleId=103419&docType=1
](https://doc.open.alipay.com/docs/doc.htm?treeId=193&articleId=103419&docType=1
)
選擇最新版的SDK版本
復(fù)制maven坐標(biāo),導(dǎo)入spring boot項(xiàng)目pom 文件里面
打開開發(fā)文檔:https://opendocs.alipay.com/open/028r8t?scene=22
這里只是單獨(dú)對電腦網(wǎng)站支付統(tǒng)一收單下單并支付頁面接口進(jìn)行測試.
編寫一個(gè)接口,為了方便演示,創(chuàng)建get請求,訂單信息寫死在代碼中
//支付寶支付接口
@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";//創(chuàng)建訂單接口@ResponseBody@GetMapping("/create")public String create(){//創(chuàng)建連接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 "調(diào)用失敗";}}
}
注意配置參數(shù):
- serverUrl參數(shù)的值:
- appId參數(shù)的值:
- privateKey 和alipayPublicKey的值:
配置好參數(shù)值后,接著我們啟動(dòng)springboot項(xiàng)目,這里配置的tomcat使用8080端口
啟動(dòng)成功后,打開瀏覽器訪問我們上面編寫的接口地址:http://localhost:8080/pay/create,出現(xiàn)支付寶界面表示成功.如果失敗,檢查配置的參數(shù)!
3. 內(nèi)網(wǎng)穿透
以上調(diào)用sdk創(chuàng)建支付單的服務(wù)運(yùn)行在本地,局限性在于只能本地的項(xiàng)目才能調(diào)用測試支付的接口,如果想要遠(yuǎn)程也可以調(diào)用,需要把服務(wù)暴露到公網(wǎng)。
而Cpolar是一款內(nèi)網(wǎng)穿透工具,它支持http/https/tcp協(xié)議,不限制流量,操作簡單,無需公網(wǎng)IP,也無需路由器,可以輕松把服務(wù)暴露到公網(wǎng)訪問。
cpolar官網(wǎng):https://www.cpolar.com/
3.1 下載安裝cpolar內(nèi)網(wǎng)穿透
訪問cpolar官網(wǎng),注冊一個(gè)賬號(hào),并下載安裝cpolar客戶端。詳細(xì)可以參考文檔教程進(jìn)行下載安裝。
3.2 創(chuàng)建隧道
cpolar安裝成功后,我們在瀏覽器上訪問本地9200端口,登錄Cpolar的web ui界面:http://localhost:9200。
點(diǎn)擊左側(cè)儀表盤的隧道管理——?jiǎng)?chuàng)建隧道,由于tomcat中配置的是8080端口,因此我們要來創(chuàng)建一條http隧道,指向8080端口:
- 隧道名稱:可自定義,注意不要與已有隧道名稱重復(fù)
- 協(xié)議:http協(xié)議
- 本地地址:8080
- 域名類型:免費(fèi)選擇隨機(jī)域名
- 地區(qū):選擇China top
點(diǎn)擊創(chuàng)建
點(diǎn)擊左側(cè)儀表盤的狀態(tài)——在線隧道列表,可以看到剛剛創(chuàng)建的隧道已經(jīng)有生成了相應(yīng)的公網(wǎng)地址,一個(gè)http協(xié)議,一個(gè)https協(xié)議(免去配置ssl證書的繁瑣步驟),將其復(fù)制想下來
4. 測試公網(wǎng)訪問
打開瀏覽器輸入復(fù)制的公網(wǎng)地址+接口路徑
進(jìn)行訪問,出現(xiàn)支付寶頁面表示訪問成功
5. 配置固定二級子域名
由于以上使用cpolar所創(chuàng)建的隧道使用的是隨機(jī)公網(wǎng)地址,該地址24小時(shí)內(nèi)會(huì)發(fā)生變化,不利于長期遠(yuǎn)程訪問。因此我們可以為其配置二級子域名,該地址為固定地址,不會(huì)隨機(jī)變化【ps:cpolar.cn已備案】
注意需要將cpolar套餐升級至基礎(chǔ)套餐或以上?!綾polar.cn已備案】
5.1 保留一個(gè)二級子域名
訪問Cpolar官網(wǎng),登錄cpolar官網(wǎng)后臺(tái),點(diǎn)擊左側(cè)的預(yù)留,找到保留二級子域名:
- 地區(qū):選擇China VIP
- 二級域名:可自定義填寫
- 描述:即備注,可自定義填寫
點(diǎn)擊保留
提示子域名保留成功,復(fù)制所保留的二級子域名
5.2 配置二級子域名
訪問http://127.0.0.1:9200/,登錄cpolar web UI管理界面,點(diǎn)擊左側(cè)儀表盤的隧道管理——隧道列表,找到支付接口測試隧道,點(diǎn)擊右側(cè)的編輯
修改隧道信息,將保留成功的二級子域名配置到隧道中
- 域名類型:選擇二級子域名
- Sub Domain:填寫保留成功的二級子域名
點(diǎn)擊更新
更新完后,再次打開在線隧道列表,此時(shí)可以看到,隧道變成了固定的二級子域名,復(fù)制該域名
6. 使用固定二級子域名進(jìn)行訪問
打開瀏覽器輸入剛剛配置成功的固定二級子域名+接口路徑
進(jìn)行訪問,出現(xiàn)支付寶頁面表示訪問成功
填寫賬戶名和支付密碼測試,賬戶名和支付密碼登錄控制臺(tái)查看
選擇測試賬戶的余額進(jìn)行支付,支付密碼在控制臺(tái)能看到
支付成功