鍍金池/ 問答/PHP  HTML/ thinkphp5 微信小程序開發(fā)的問題

thinkphp5 微信小程序開發(fā)的問題

在使用thinkphp5.1x做微信小程序支付時遇到一個問題,很困惑
前端流程是:先請求下單接口,下單接口成功后請求支付接口.
前端代碼:

getpay:function(){
  var token=wx.getStorageSync('token');
  wx.request({
    // 請求訂單接口
    url: 'http://restcms.cncyz.com/api/v1/placeOrder',
    method:"POST",
    header:{
      token:token
    },
    data:{
      // 訂單數(shù)據(jù)
      products:[
        {product_id:1, count:3},
        {product_id:11,count:5}
      ]
    },
    success:function(res){
      console.log(res);
      // 調(diào)用服務(wù)器支付接口
      wx.request({
        url: 'http://restcms.cncyz.com/api/v1/pay',
        method: "POST",
        header: {
          token: token
        },
        data: {
          id: res.data.order_id
        },
        success:function(resn){
          // 使用微信的支付接口
          console.log(resn);
        }
      })
    }
  })
}

遇到的問題是:
http://restcms.cncyz.com/api/... 訂單接口因為用戶地址不存在拋出了一個異常

        $data=UserAddress::where('user_id','=',$this->uid)->find();
        if(empty($data)){
            throw new UserException(['msg'=>'用戶地址不存在']);
        }
        return $data;

微信開發(fā)者工具的報錯
圖片描述

不明白的地方,第一個訂單異常拋出就應(yīng)該終止了吧,為什么還會有支付的報錯信息.
下面代碼不是不應(yīng)該執(zhí)行了,拋出異常了,為啥還會執(zhí)行,并且有報錯信息了

success:function(res){
      console.log(res);
      // 調(diào)用服務(wù)器支付接口
      wx.request({
        url: 'http://restcms.cncyz.com/api/v1/pay',
        method: "POST",
        header: {
          token: token
        },
        data: {
          id: res.data.order_id
        },
        success:function(resn){
          // 使用微信的支付接口
          console.log(resn);
        }
      })

代碼應(yīng)該怎么修改了? 什么原因了?

回答
編輯回答
墨小羽

后端簡化下接口,就做成一個接口

2018年2月14日 08:58
編輯回答
只愛你

第一個wx.request()函數(shù)雖然接口返回404,但是你看打印的信息時成功了,就進入success()回調(diào)函數(shù)了。

你可以看看wx.request()文檔,success()是收到開發(fā)者服務(wù)成功返回的回調(diào)函數(shù),而fail()是接口調(diào)用失敗的回調(diào)函數(shù)。

你應(yīng)該在第一個success()函數(shù)中判斷是否成功了

wx.request({
    // 請求訂單接口
    url: 'http://restcms.cncyz.com/api/v1/placeOrder',
    method:"POST",
    header:{
      token:token
    },
    data:{
      // 訂單數(shù)據(jù)
      products:[
        {product_id:1, count:3},
        {product_id:11,count:5}
      ]
    },
    success:function(res){
        if(res.statusCode !== 200){
            //提示
            return
        }
        //判斷業(yè)務(wù)是否是成功的
        
        
        //調(diào)用支付接口
        
        
    }
   }) 
2017年8月31日 20:42