SDK接口远程调试【内网穿透】

简介: SDK接口远程调试【内网穿透】

1.测试环境


Maven

Spring boot

Jdk 1.8


2.本地配置


获取支付宝支付Java SDK,maven项目可以选择maven版本,普通java项目可以在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

)


12ac07bc65ba1359c1f41d9e736859e2_4e1c32072a165bafab2dc2daf1881481.png


选择最新版的SDK版本


a8d5ee4139edbe044be4d054f7345750_c1ec84e34dea0edc4d48a7b61a354e92.png


复制maven坐标,导入spring boot项目pom 文件里面


252e95166707229c8ae5f5964e3aa66d_c1f37daff10bcf14d9eb6e3e6c91a6c7.png

29d9ad98dcbbd64396531fe78557550d_a8043b5c51bb9cb6ae7d6f400737970b.png


打开开发文档:https://opendocs.alipay.com/open/028r8t?scene=22


这里只是单独对电脑网站支付统一收单下单并支付页面接口进行测试.


79823530cff81251fb47b707ba80b242_60d4e0e0285ff5b422038a97d7592f6e.png


编写一个接口,为了方便演示,创建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";
    //创建订单接口
    @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  "调用失败";
        }
    }
}

注意配置参数:


serverUrl参数的值:


f27103bd9e163d46ea39a318c9aa1de3_23849cf3bb0aa61cec8e4ce6ea7cd577.png


appId参数的值:


a44e0794ae41b76dc2ecda04ddb6df7c_f429ca2747d8481b92c06603b6340a6d.png


privateKey 和alipayPublicKey的值:

a6ec6bedea8760255fe505f870476b10_8c2f20fd902fb53d3c968de3b4dde0f5.png

9b6115f5d2054416728777a6cfc0af62_0b292ba134e94954dfa21e2d044c4c2c.png


配置好参数值后,接着我们启动springboot项目,这里配置的tomcat使用8080端口


5ef9cc002cf22575a203e1b5b8d798a1_7de97a12c043597d50efbac3b88113e8.png


启动成功后,打开浏览器访问我们上面编写的接口地址:http://localhost:8080/pay/create,出现支付宝界面表示成功.如果失败,检查配置的参数!


6b17c080679d531b51a075a246617f4a_11f7c25a580d46fb9a39477ded0b06e8.png


3. 内网穿透


以上调用sdk创建支付单的服务运行在本地,局限性在于只能本地的项目才能调用测试支付的接口,如果想要远程也可以调用,需要把服务暴露到公网。


而Cpolar是一款内网穿透工具,它支持http/https/tcp协议,不限制流量,操作简单,无需公网IP,也无需路由器,可以轻松把服务暴露到公网访问。


cpolar官网:https://www.cpolar.com/


3.1 下载安装cpolar内网穿透


访问cpolar官网,注册一个账号,并下载安装cpolar客户端。详细可以参考文档教程进行下载安装。


cb24b342f13877cfe8384c15439f1625_88357132fa1eb991fa2442acbae50603.png


3.2 创建隧道


cpolar安装成功后,我们在浏览器上访问本地9200端口,登录Cpolar的web ui界面:http://localhost:9200。


点击左侧仪表盘的隧道管理——创建隧道,由于tomcat中配置的是8080端口,因此我们要来创建一条http隧道,指向8080端口:


隧道名称:可自定义,注意不要与已有隧道名称重复

协议:http协议

本地地址:8080

域名类型:免费选择随机域名

地区:选择China top

点击创建


3ab5fa8ff09add8b006645a92750962b_6f80fb4d72b00eded8ca186f830315d8.png


点击左侧仪表盘的状态——在线隧道列表,可以看到刚刚创建的隧道已经有生成了相应的公网地址,一个http协议,一个https协议(免去配置ssl证书的繁琐步骤),将其复制想下来


ccadbd9f84d3e1b58c69ccd069ad230a_e4f9c4d40f30611cad1d63f025bc4f90.png


4. 测试公网访问


打开浏览器输入复制的公网地址+接口路径 进行访问,出现支付宝页面表示访问成功



ffbc103f119dc3f3e16897b5c58ad6bb_4638a62885494e0ebbf6ee4974f37245.png



5. 配置固定二级子域名


由于以上使用cpolar所创建的隧道使用的是随机公网地址,该地址24小时内会发生变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn已备案】


注意需要将cpolar套餐升级至基础套餐或以上。【cpolar.cn已备案】


5.1 保留一个二级子域名


访问Cpolar官网,登录cpolar官网后台,点击左侧的预留,找到保留二级子域名:


地区:选择China VIP

二级域名:可自定义填写

描述:即备注,可自定义填写

点击保留


f39735ed10c70335ce7e95ea2c674e46_213e0c5ee9076227d1b1f2e6b16eafa2.png


提示子域名保留成功,复制所保留的二级子域名


9abb073e97882e073d72f2c940845a28_6ffc11832411d7622cbc70e01daaab77.png


5.2 配置二级子域名


访问http://127.0.0.1:9200/,登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到支付接口测试隧道,点击右侧的编辑


a72416b7697602ea0187dc7ab94e7b33_0cf97d9bb400e724df7b1efabb9e3a64.png


修改隧道信息,将保留成功的二级子域名配置到隧道中


域名类型:选择二级子域名

Sub Domain:填写保留成功的二级子域名

点击更新


e2e39bcfe4495efc268cee37c684617c_51956bb9c5c19655f0b9848ddd0f623a.png


更新完后,再次打开在线隧道列表,此时可以看到,隧道变成了固定的二级子域名,复制该域名


57f7de376def8476193f3eea51a4fb95_1093fb6f8a044e2d926b4b62bbae3a8e.png


6. 使用固定二级子域名进行访问


打开浏览器输入刚刚配置成功的固定二级子域名+接口路径进行访问,出现支付宝页面表示访问成功


e8058eefa8cbe3d532c72349278aff95_3bc90182e56f45caa3d9742ea76e83c7.png


填写账户名和支付密码测试,账户名和支付密码登录控制台查看


1c78a5fb1cb7807eb8fe3b3928ca5cd8_3866df0d683646f841e8dd9d81df63b4.png


选择测试账户的余额进行支付,支付密码在控制台能看到

a2003eb080d652422e0359e4d5a99a48_3cb6a76b23a14bbc9e5bd781c16060f1.png


48661fb41cf52e7cb94392584cd5a522_e827595e312d4fc8a1d844ebba2e4a27.png



支付成功

f1e4f302efe0ccd01bc2937e3179f6bb_2dd011229cadcbcf69c6a25a8f8f8ec2.png


相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
7月前
|
物联网 开发工具 Android开发
UniApp调用SDK原生接口
UniApp调用SDK原生接口
555 0
UniApp调用SDK原生接口
|
9月前
|
机器学习/深度学习 人工智能 PHP
百度AI开发平台图像增强与特效API-SDK接口PHP实战记录
百度AI开发平台图像增强与特效API-SDK接口PHP实战记录
98 0
百度AI开发平台图像增强与特效API-SDK接口PHP实战记录
|
1月前
|
开发框架 Java .NET
闪速码短信Python接口SDK
闪速码短信Python接口SDK
66 4
|
6月前
|
安全 API 开发工具
获取仓库列表接口可以通过SDK或者REST API两种方式调用
获取仓库列表接口可以通过SDK或者REST API两种方式调用
50 2
|
2月前
|
Web App开发 前端开发 JavaScript
如何快速与呼叫中心系统CTI/API/SDK接口集成
由于呼叫中心系统涉及通信、CTI、终端设备、中继线路等技术与概念,从事信息管理系统、ERP、CRM、工单系统等的研发人员一般不是非常熟悉这部分技术,当需要提供具备呼叫中心能力的解决方案时,往往要用较多的时间来研究这些相对复杂的技术,对接过程比较长,开发调试有一定的阻力,基于此,我们提出一种更加简便高效的集成方法,可以零代码集成呼叫中心平台,实现项目快速上线。
如何快速与呼叫中心系统CTI/API/SDK接口集成
|
4月前
|
JSON JavaScript 前端开发
全面的.NET微信网页开发之JS-SDK使用步骤、配置信息和接口请求签名生成详解
全面的.NET微信网页开发之JS-SDK使用步骤、配置信息和接口请求签名生成详解
|
9月前
|
API PHP 开发工具
漏刻有时API接口实战开发系列(11):腾讯云短信3.0sms开发SDK环境部署及配置的实战总结
漏刻有时API接口实战开发系列(11):腾讯云短信3.0sms开发SDK环境部署及配置的实战总结
188 0
|
10月前
|
网络协议 Java 应用服务中间件
支付宝SDK接口调试- cpolar内网穿透工具实现公网地址调试
支付宝SDK接口调试- cpolar内网穿透工具实现公网地址调试
109 0
|
6天前
|
JavaScript Java Maven
云效产品使用常见问题之android sdk 构建出aar后,上传到私有maven仓库失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
安全 开发工具 Android开发
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
293 0