支付宝SDK接口调试- cpolar内网穿透工具实现公网地址调试(1)

文章目录

  • 1.测试环境
  • 2.本地配置
  • 3. 内网穿透
    • 3.1 下载安装cpolar内网穿透
    • 3.2 创建隧道
  • 4. 测试公网访问
  • 5. 配置固定二级子域名
    • 5.1 保留一个二级子域名
    • 5.2 配置二级子域名
  • 6. 使用固定二级子域名进行访问

转发自cpolar内网穿透的文章:Java支付宝沙箱环境支付,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

2023011001

选择最新版的SDK版本

2023011002

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

2023011003
2023011004

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

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

2023011005

编写一个接口,为了方便演示,创建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参数的值:

2023011006

  • appId参数的值:

2023011007

  • privateKey 和alipayPublicKey的值:

2023011008
2023011009

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

2023011010

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

在这里插入图片描述

3. 内网穿透

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

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

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

3.1 下载安装cpolar内网穿透

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

20230116162253

3.2 创建隧道

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

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

  • 隧道名称:可自定义,注意不要与已有隧道名称重复
  • 协议:http协议
  • 本地地址:8080
  • 域名类型:免费选择随机域名
  • 地区:选择China top

点击创建

2023011012

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

2023011013

4. 测试公网访问

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

20230116161201

在这里插入图片描述

5. 配置固定二级子域名

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

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

5.1 保留一个二级子域名

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

  • 地区:选择China VIP
  • 二级域名:可自定义填写
  • 描述:即备注,可自定义填写

点击保留

2023011015

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

2023011016

5.2 配置二级子域名

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

2023011017

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

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新

2023011018

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

2023011019

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

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

在这里插入图片描述

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

2023011021

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

在这里插入图片描述

2023011023

支付成功

2023011024

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/22720.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

16款ChatGPT工具,太炸裂了,收藏!

1.ChatGPT for google 一个浏览器插件,可搭配现有的搜索引擎来使用。 最大化搜索效率,对搜索体验的提升相当离谱: 安装完插件后,在搜索引擎搜索任何问题,都能获取两份答案。 左边是谷歌抓取的全网资源,右…

chatgpt赋能python:简介:什么是PythonShapiro?

简介:什么是Python Shapiro? Python Shapiro是一种用来进行正态性检验的工具,也就是说,它可以帮助我们检验一个给定的数据集是否符合正态分布的要求。它是从R语言中的Shapiro-Wilk测试方法改编而来的。 如何使用Python Shapiro&…

ELK 企业级日志分析系统

---------------------- ELK 概述 ---------------------------------------- 1、ELK 简介 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ●…

1123 Is It a Complete AVL Tree (PAT甲级)

这道题是看了柳婼的解法才搞定的。开始想着把height和parent放到结构体中去&#xff0c;很繁琐最后还搞不定…… #include <cstdio> #include <algorithm> #include <vector>struct node{int key;node* left nullptr;node* right nullptr; };int N, t, pi…

一文打通File类

目录 基本概述 常用构造器 构造方法 路径分隔符 常用方法 File类的获取功能 File类的重命名功能 File类的判断功能 File类的创建功能 File类的删除功能 在 Java 中&#xff0c;File 类是 java.io 包中唯一代表磁盘文件本身的对象&#xff0c;也就是说&#xff0c;如果…

2023/5/21总结

因为之前高中学过一点点的html。虽然不是很多&#xff0c;但是有一点点基础&#xff0c;看了一些关于html的知识点&#xff0c;算是复习了&#xff0c;如果后面忘记打算再去查。 html是超文本标记语言&#xff0c;通常由<></>构成&#xff0c;当然也有单标记&…

Cisco Secure Web Appliance Virtual 15.0 发布 - 适用于网络安全的思科高级威胁防护

Cisco Secure Web Appliance Virtual, AsyncOS for WSA 15.0.0 LD 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-secure-web-appliance-15/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org Cisco Secure Web Appli…

游资92科比到底牛在哪里?

昨天一天时间把92科比之前的一个帖子全部看完&#xff0c;从科比对情绪周期的把握来看那简直总结的已经是标准答案了&#xff0c;那么为何92科比公布了答案&#xff0c;还是有很多人“痛苦”的做不到&#xff1f; 这个问题我觉得跟退学炒股是一样的&#xff0c;退学先解决了小…

关于Jetpack DataStore(Preferences)的八点疑问

前言 DataStore是Android上一种轻量级存储方案&#xff0c;依据官方教程很容易就写出简易的Demo。 本篇主要是分析关于DataStore(Preferences)使用过程中的一些问题&#xff0c;通过问题寻找本质&#xff0c;反过来能更好地指导我们合理使用DataStore。 本篇内容目录&#xff…

Maven基础学习---5、其他核心概念

1、生命周期 1、作用 为了让构建过程自动化完成&#xff0c;Maven设定了三个生命周期。生命周期中的每一个环节对应构建过程中的一个操作。 2、三个生命周期 3、特点 前面三个生命周期彼此都是独立的在任何一个生命周期内部&#xff0c;执行任何一个具体环节的操作&#xff…

GC 三色标记算法(Go Java版本)

一、前言 GC全称Garbage Collection&#xff0c;目前主流的垃圾回收算法有两类&#xff0c;分别是追踪式垃圾回收算法&#xff08;Tracing garbage collection&#xff09;和引用计数法&#xff08; Reference counting &#xff09;。 而三色标记法是属于追踪式垃圾回收算法…

我出版了一本关于TikTok电商运营的书

回首2020年初&#xff0c;第一次在手机上下载TikTok的那个下午&#xff0c;我并没有意识到&#xff0c;未来三年多这个词会充满我的工作与生活。 那其实是非常幸福的一段时间&#xff0c;对TikTok的期待没有那么功利&#xff0c;每天刷一刷TikTok中的视频&#xff0c;再随手拍…

车辆合格证怎么转为结构化excel数据?

一、为何要将车辆合格证转为结构化excel&#xff1f; 车辆合格证是在车辆制造完成后&#xff0c;经过各项检测合格的证明。对于车辆行业来说&#xff0c;车辆合格证是一种重要的合规证明&#xff0c;在车辆的生产制造、售后服务、质量管理等各个环节中都有着重要的作用。同时&…

git pull报没有足够内存 not enough memory for initialization

git clone 或 git pull 批量同步远程 git仓库代码时&#xff0c;报 没有足够内存用于初始化 not enough memory for initialization。经过观察 资源管理器 的内存使用情况&#xff0c;发现为 剩余可用内存不足造成的。加物理内存麻烦&#xff0c;可通过适当调整 分页文件&…

软考知识点---08IP地址与域名地址

&#x1f4e2;博客主页&#xff1a;盾山狂热粉的博客_CSDN博客-C、C语言,机器视觉领域博主&#x1f4e2;努力努力再努力嗷~~~✨ 一、IP地址 &#xff08;一&#xff09;什么是IP地址&#xff1f; 连入互联网的计算机&#xff0c;每台计算机或者路由器都有一个由授权机构分配的…

煤矿电子封条实施方案 yolov7

煤矿电子封条实施方案采用YOLOv7网络模型算法技术&#xff0c;煤矿电子封条实施算法模型过将全国各省矿山实时监测数据&#xff0c;实现对全国各矿山及时有效的处理及分析。YOLOv7 的发展方向与当前主流的实时目标检测器不同&#xff0c;研究团队希望它能够同时支持移动 GPU 和…

零入门kubernetes网络实战-33->基于nat+brigde+veth pair形成的跨主机的内网通信方案

《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 本文主要使用的技术是 nat技术Linux虚拟网桥虚拟网络设备veth pair来实现跨主机网桥的通信 1、测试环境介绍 两台centos虚拟机 # 查看操作系统版本 cat …

Unity3D安装:从命令行安装 Unity

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 从命令行安装 Unity 如果要在组织中自动部署 Unity&#xff0c;可以从命令行安装 Editor 和其他组件。这些组件是普通的安装程序可执行程序和软件包&#xff0c;可以给用来自动部署…

圣墟传说H5手工端搭建架设教程

圣墟传说H5手工端搭建架设教程 大家好&#xff0c;我是艾西。今天给大家带来的游戏是由小说改编而来的大型玄幻MMORPG仙侠手游&#xff0c;也是比较老的游戏了虽然你可能没有怎么听过&#xff0c;但总会有一批喜欢的玩家热衷于它。 那么让我们直接进入正题开始操作&#xff1…

【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…