请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于部署上线后支付404的问题!

前端项目已经部署上线了,后端的接口是看廖师兄课程开发的,也上线了。
其他的接口都能请求成功,就是支付这里有个问题。
首先我单独在浏览器请求支付接口没问题。
图片描述
然后在线上项目点击支付后就显示pay接口为404。发现这个地址栏的参数没有提交上去
图片描述

下面是支付按钮的方法:

  paySubmit(payType) {
        if (payType == 1) {
          window.open('/#/order/alipay?orderId=' + this.orderId, '_blank');
        } else {
          this.axios.post('/pay', {
            orderId: this.orderId,
            orderName: 'Vue高仿小米商城',
            amount: 0.01,//单位元
            payType: 2 //1支付宝,2微信
          }).then((res) => {
            QRCode.toDataURL(res.content)
              .then(url => {
                this.showPay = true;
                this.payImg = url;
                this.loopOrderState();
              })
              .catch(() => {
                this.$message.error('微信二维码生成失败,请稍后再试!')
              })
          })
        }
      },

下面是nginx配置文件:

server
{
    listen 80;
    server_name mi.huoqiang.site;
    index index.html index.htm login.html;
    root /www/wwwroot/mi.huoqiang.site;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-00.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/mi.huoqiang.site.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null; 
    }
    location ^~/api/
    {
	  proxy_pass http://127.0.0.1:8080/;
    }
    location ^~/pay/
    {
          proxy_pass http://127.0.0.1:8081/pay/;
    }
    access_log  /www/wwwlogs/mi.huoqiang.site.log;
    error_log  /www/wwwlogs/mi.huoqiang.site.error.log;
}

我是新手倒腾了好久不知道是哪里的问题。
辛苦老师看一下!谢谢!

附:
a:服务器已经开放8080及8081端口
b:商品和支付接口都已经启动
图片描述

正在回答 回答被采纳积分+3

2回答

河畔一角 2021-03-12 16:41:08

支付的地址可能需要廖师兄后台做一个域名添加,目前廖师兄的后台只能认识我的域名。所以你的域名是无法直接支付的。


另外,我看到你第一个生成二维码的域名有8001端口,你线上的并没有端口

1 回复 有任何疑惑可以回复我~
  • 提问者 huoqiang #1
    那个支付项目是我跟着廖师兄做的。 在配置文件中修改了这个访问的域名的。 8081端口已经在nginx做了反向代理。 就不知道什么原因。 老师我加你的qq了,要是可以的话,帮我远程一下。我的qq昵称是 -black
    回复 有任何疑惑可以回复我~ 2021-03-12 18:48:01
  • 我不一定能解决你的问题,我这边只是纯前端课程,我觉得支付细节对接可能需要去咨询一下廖师兄。小米商城的前端支付本身就是一个接口调用比较简单,至于为什么会返回404,我感觉后台可能有坑。 我不清楚廖师兄是怎么设计的,或许有一个白名单机制在里面。
    回复 有任何疑惑可以回复我~ 2021-03-12 18:50:59
  • 提问者 huoqiang 回复 河畔一角 #3
    好的。
    回复 有任何疑惑可以回复我~ 2021-03-16 00:02:57
河畔一角 2021-03-21 22:11:53

看起来确实是多了一层/api,后台没有,你要把/api删掉,前端在讲的时候,也是在vue.config.js中把/api抹掉的

0 回复 有任何疑惑可以回复我~
  • 提问者 huoqiang #1
    老师我的vue.config.js是这样的。
      devServer: {
        host: 'localhost',
        port: 8080,
        proxy: {
          '/api': {
            target:'http://mi.huoqiang.site:8080/',
            changeOrigin: true,
            pathRewrite: {
              '/api': ''
            }
          }
        }
      },
    
    这里的/api删掉还是nginx配置文件的
    location ^~/api/
        {
    	  proxy_pass http://127.0.0.1:8080/;
        }
    回复 有任何疑惑可以回复我~ 2021-03-27 07:21:36
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号