如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付

这篇具有很好参考价值的文章主要介绍了如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、给项目加上域名,

1.点击下面链接,进行注册,登录,实名认证等操作

NATAPP-内网穿透 基于ngrok的国内高速内网映射工具

2.登录完成后,点击购买隧道,购买免费隧道

如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付

每个人可以申请两条隧道,建议选择一条web和一条tcp隧道

如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付

3.购买成功后点击右上角的客户端下载,选择自己对应的操作系统,下载解压

如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付

4.下载后解压打开 输入natapp -authtoken 你的NETAPP上的隧道authtoken

如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付

如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付

如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付

这个就是网络地址

如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付

访问时在用网络地址替换本地地址就行了(访问的时候一定要把这个窗口打开)

以前

localhost/front/page/login.html

现在

 http://g3zjqu.natappfree.cc/front/page/login.html

二、使用支付宝接口进行沙箱支付

1.搜索点击支付宝,开发者,控制台,沙箱,或直接点击下面链接

登录 - 支付宝

 

2.像这样一样配置

配置:应用网关地址的链接  https://openapi.alipaydev.com/gateway.do

第一次使用需要加载几分钟,基本信息显示的慢

如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付

3.在项目中进行配置

3.1 导入pom坐标

        <!--阿里支付-->
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-easysdk</artifactId>
            <version>2.0.2</version>
        </dependency>

3.2 在application.yml文件中进行相关配置

server:
  port: 80
alipay:
  #支付宝中应用唯一标识
  appId: 
  #应用私钥
  privateKey: 
  #支付宝公钥
  publicKey: 
  #网关:固定不改
  gateway: openapi.alipaydev.com
  #支付成功后,支付宝会往配置的returnUrl对应的页面进行跳转  -- 支付成功后的回跳页面
  returnUrl:  http://2kipe6.natappfree.cc/return.html

  #支付成功的支付宝回调接口:通常在回调接口中完成支付成功后的业务逻辑操作,比如: 修改订单状态
  notifyUrl:  http://2kipe6.natappfree.cc/pay/fallback

如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付

 应用私钥和支付宝公钥在查看里面

配置application.yml时需注意空格,域名每一次是经常变动的,需要及时修改

如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付

3.3 添加配置类


/**
 *  项目初始化
 * @date 2020-09-08
 * */
@Component
public class AliPayConfig implements ApplicationRunner {

    //应用id
    @Value("${alipay.appId}")
    private String appId;

    //私钥
    @Value("${alipay.privateKey}")
    private String privateKey;

    //公钥
    @Value("${alipay.publicKey}")
    private String publicKey;

    //支付宝网关
    @Value("${alipay.gateway}")
    private String gateway;

    //支付成功后的接口回调地址,不是回调的友好页面,不要弄混了
    @Value("${alipay.notifyUrl}")
    private String notifyUrl;

    /**
     *  项目初始化事件
     * */
    @Override
    public void run(ApplicationArguments args) throws Exception {
        //初始化支付宝SDK
        Factory.setOptions(getOptions());
        System.out.println("**********支付宝SDK初始化完成**********");
    }

    private Config getOptions() {
        //这里省略了一些不必要的配置,可参考文档的说明

        Config config = new Config();
        config.protocol = "https";
        config.gatewayHost = this.gateway;
        config.signType = "RSA2";

        config.appId = this.appId;

        // 为避免私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中
        config.merchantPrivateKey = this.privateKey;

        //注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可
        config.alipayPublicKey = this.publicKey;

        //可设置异步通知接收服务地址(可选)
        config.notifyUrl = notifyUrl;

        return config;
    }
}

3.4 在使用的时候发送请求调用就行了


@Slf4j
@RestController
@RequestMapping("/pay")
public class PayController {

    @Value("${alipay.returnUrl}")
    private String returnUrl;
    @Autowired
    private OrdersService ordersService;

    //get  http://localhost:8080/pay/confirm?id=undefined
    @GetMapping("/confirm")
    public Object pay(Long id) throws Exception {
        log.info("订单号为{}",id);

        //根据订单id查询订单详情
        Orders orders = ordersService.getById(id);
        //生成订单名称
        String orderName="订单号:"+id+"收货人:"+orders.getConsignee();


        //调用sdk,发起支付
        AlipayTradePagePayResponse response = Factory.Payment
                //选择网页支付平台
                .Page()
                //调用支付方法,设置订单名称、我们自己系统中的订单号、金额、回调页面

                .pay(orderName ,          //订单名称
                       id.toString(),   //订单号
                        orders.getAmount().toString() ,  //金额
                        returnUrl);

        //这里的response.body,就是一个可以直接加载的html片段,
        // 这里为了简单我直接返回这个片段,前端直接
        return response.body;

    }

    @PostMapping("/fallback")
    public void fallback(HttpServletRequest request){
        Map map = request.getParameterMap();
        //取出订单号
        String[] numbers = (String[]) map.get("out_trade_no");
        String number = numbers[0];
        //根据订单号查询订单详情
        Orders order = ordersService.getById(number);
        log.info("--------------------------订单:"+number+"支付成功,进入了回调---------------------------");
        //修改订单状态
        order.setStatus(2);     // 1: 待付款   2:待派送
        ordersService.updateById(order);
    }


}

4.使用的过程中使用沙箱账号登录支付,记得充钱(虚拟的)

如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付

 文章来源地址https://www.toymoban.com/news/detail-455184.html

到了这里,关于如何给自己的项目加上域名,在浏览器中被别人访问,使用支付宝进行沙箱支付的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp新建项目后,如何在浏览器和微信小程序运行

    第一步:新建项目 参考uni-app官网提供了HBuilderX可视化创建和vue cli命令两种方式创建项目,由于HBuilder和它都是DCloud公司的产品,使用它创建项目可以很方便的下载插件什么的。 新建项目很简单: https://uniapp.dcloud.net.cn/quickstart-hx.html 下载HBuilderX,然后参照这个文档点两下选择

    2024年02月03日
    浏览(56)
  • 第138篇:了解HTTP协议(TCP/IP协议,DNS域名解析,浏览器缓存)

    好家伙,发现自己的网络知识十分匮乏,赶紧补一下   这里先举个我生活中的例子 欸,作业不会写了,上网搜一下 用edge浏览器上bing必应搜一下(百度广告太多了,真不想用百度举例子)   假设这是我们第一次访问bing的首页 当我向浏览器中输入https://cn.bing.com/并按下回车

    2023年04月24日
    浏览(46)
  • Chrome 谷歌浏览器获取网址映射 IP 地址 DNS 域名解析过程介绍(详细教程)

    步骤 说明 ① 浏览器输入:http://www.baidu.com ② 查找浏览器自身 DNS 缓存:chrome://net-internals/#dns ③ Windows 系统:查找系统 hosts 文件、Linux 系统:查找 /etc/hosts 文件 ④ 浏览器就会发起一个 DNS 系统调用(向本地域名服务器发起域名解析请求) ⑤ 本地域名服务器 LDNS 替我们的浏

    2024年02月03日
    浏览(64)
  • 【python爬虫】设计自己的爬虫 4. 封装模拟浏览器 Selenium

    有些自动化工具可以获取浏览器当前呈现的页面的源代码,可以通过这种方式来进行爬取 一般常用的的有Selenium, playwright, pyppeteer,考虑到他们的使用有许多相同之处,因此考虑把他们封装到一套api中 先看基类 Selenium是一个自动化测试工具,利用它可以驱动浏览器完成特定

    2024年02月03日
    浏览(60)
  • 关于 mac 本地配置域名能 ping 通,但是浏览器不能访问的问题(而其他电脑操作可访问)

    如下: 如下: 我还挺喜欢这种方式的,也不用修改 hosts 文件了,挺方便的。 配置了域名后,浏览器中输入域名不能访问,如下 ping 域名的等是对于配置了 hosts 文件的,注意一下。 如果本地有安装类似Clashx,需要关闭一下,没有的忽略此步骤 如下 确保没问题的话,继续往

    2024年02月16日
    浏览(53)
  • 针对于selenium的一些常规配置(防检测,无头,保留自己浏览器的登录信息等)

    在使用selenium的时候有时候会受到网站的检测导致我们的程序被迫中止,因此我们需要给selenium添加一些浏览器特征来防止被网站检测到**(1-4为防检测配置)**. 在给selenium添加参数的时候,我们可以使用add_argument selenium添加user-agent参数 去除 “Chrome正受到自动化测试软件的控制”

    2024年02月12日
    浏览(47)
  • 使用puppeteer完成监听浏览器下载文件并保存到自己本地或服务器上完成上传功能

    获取网站点击的下载pdf,并把pdf重命名再上传到COS云上面 “puppeteer”: “^19.7.2”, “egg”: “^3.15.0”, // 服务期用egg搭的 文件服务使用COS腾讯云 获取浏览器下载事件,并把文件保存到本地 在保存到本地前监听此文件夹,如果有文件则获取并上传 加timer做防抖是为了防止在文

    2024年04月15日
    浏览(35)
  • 什么是无头浏览器?如何使用Golang实现无头浏览器截图?

    在Web开发中,有时需要对网页进行截图,以便进行页面预览、测试等操作。 而使用无头浏览器来实现截图功能,可以避免手动操作的繁琐和不稳定性。 这篇文章将介绍: 使用Golang进行无头浏览器的截图,轻松实现页面预览、测试和模拟用户操作。 这篇文章发完,有朋友在朋

    2024年02月05日
    浏览(54)
  • 谷歌浏览器调试vue项目

    前言          众所周知,在项目过程中我们常常遇到的一个问题就是本地调试的时候没问题但是发布到线上的时候就不行了。在时间充裕的情况下,我们当然可以慢慢调试,但是那是不可能的。在线上遇到问题时,难免会倍感压力和焦虑,这个时候就有必要强化前端的调试能力了

    2024年02月03日
    浏览(47)
  • 项目实践之浏览器安全(持续更新...)

    本质:恶意代码未经过滤,与网站正常的代码混在一起;浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行。 根据攻击的来源,XSS 攻击可分为存储型、反射型和 DOM 型三种。 1、存储型攻击步骤:     1,攻击者将恶意代码提交到目标网站的数据库中。     2,用

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包