微信H5支付

H5支付主要用于手机浏览器请求微信支付的场景。可以方便的从外部浏览器唤起微信支付。
H5支付与JSAPI支付不同的是:H5支付返回的是一条RUL支付链接,JSAPI支付一般返回给前端调用JS的微信参数,JSAPI是可以实现扫码支付的


微信H5支付_第1张图片
WeChat Image_20190323175833.png

而且同一下单接口需要传的参数也不一样

/**
     * 统一下单 -- h5支付 和 jsapi支付
     * @param $unifiedOrderParams
     * @param $payParams
     * @return array
     */
    function unifiedOrder($unifiedOrderParams, &$payParams)
    {
        // 1.准备下单参数
        $params = array(
            'body'      => $unifiedOrderParams['name'],
            'out_trade_no' => $unifiedOrderParams['order_code'],
            'total_fee' => $unifiedOrderParams['pay_amount'] * 100,
            'spbill_create_ip'=> $this->get_client_ip(),
            'notify_url'=> '你的支付回调地址', // 外网可以直接访问到的
            'trade_type'=> 'MWEB',
            'scene_info' =>  '{"h5_info": {"type":"Wap","wap_url": "https://pay.qq.com","wap_name": "腾讯充值"}}';
        );

        // 2.开始下单
        $data = array();
        $data['appid'] = $this->m_common->getWxParameter(WX_PUBLIC_APPID); // 公众账号ID
        $data["mch_id"] = $this->m_common->getWxParameter(WX_PAY_MERCHANT_ID); // 商户号
        $data["apikey"] = $this->m_common->getWxParameter(WX_PAY_SECRET); // 支付秘钥
        $this->load->library("wechatpay", $data);
        $result = $this->wechatpay->unifiedOrder($params); // 统一下单

        // 3.返回前端调用jsapi的所需参数 (还需要处理)
        if($result['return_code'] != 'SUCCESS' || $result['return_msg'] != 'OK' || $result['result_code'] != 'SUCCESS')
        {
            return ERROR_ORDER_PAY_FAIL;
        }

        // h5支付 返回支付链接
        $payParams['mweb_url'] = $result['mweb_url'];
        return ERROR_OK;
    }

上面方法中调用的其他函数请参考:微信公众号支付

你可能感兴趣的:(微信H5支付)