收藏
回答

JSAPI调用统一下单接口WxPay::unifiedOrder 参数如何传递

代码如下

private function makeWxPreOrder ($totalPrice) {
        try {
            $openid = Token::getCurrentTokenVar('openid');
            if (!$openid) {
                throw new TokenException([
                    'msg'=>'openid不正确'
                ]);
            }
            $wxOrderData = new \WxPayUnifiedOrder();
            // 订单编号
            $wxOrderData->SetOut_trade_no($this->orderNo);
            // 支付类型
            $wxOrderData->SetTrade_type('JSAPI');
            // 支付总价格
            $wxOrderData->SetTotal_fee($totalPrice * 100);
            // 支付内容简要描述
            $wxOrderData->SetBody('零食商贩');
            // 小程序客户端用户唯一标识
            $wxOrderData->SetOpenid($openid);
            // 接受微信处理返回结果的接口
            $wxOrderData->SetNotify_url('http://qq.com');
            return $this->getPaySignature($wxOrderData);
        } catch(Exception $e) {
            throw $e;
        }

    }



private function getPaySignature($wxOrderData) {
        // 微信返回的具体参数结果
        $wxOrder = \WxPayApi::unifiedOrder($wxOrderData);
 
        if ($wxOrder['return_code'] != 'SUCCESS' || $wxOrder['result_code'] != 'SUCCESS') {
            Log::record($wxOrder, 'error');
            Log::record('获取与支付订单失败', 'error');
        }
        return $wxOrder;
    }

报错信息:

Missing argument 1 for WxPayApi::unifiedOrder()


最后一次编辑于  02-11  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 微信支付技术助手
    微信支付技术助手
    02-12

    您好,您这是缺少参数,请根据官方demo仔细检查一下。

    02-12
    赞同 1
    回复 2
    • MysTic
      MysTic
      02-12

       

      我想继续问你个问题, 如果微信公众号没有开通支付功能, 没有商户号, key值, 怎么进行支付环境测试 (注: 微信中是否存在类似支付宝支付的沙箱测试环境), 谢谢你了, 技术哥哥.(*^▽^*)


      02-12
      回复
    • 微信支付技术助手
      微信支付技术助手
      02-13回复MysTic

      您好,请参考:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=23_1

      02-13
      回复
  • MysTic
    MysTic
    02-12

     上一个问题我已经解决了, 我修改了微信官方提供的支付demo源码, 跑通了

    02-12
    赞同 1
    回复 1
    • 航鲜森
      航鲜森
      1天前
      请问你是怎么解决的呢
      1天前
      回复