thinkphp3.2.3 微信支付_扫码支付_带回调

浏览:10424 发布日期:2016/09/22 分类:功能实现 关键字: 微信支付 扫码支付 微信 thinkphp3.2.3
吧微信支付的示例代码修改成tp中直接使用的实例代码,并简单的做了扫码支付以及回调功能
吧微信支付的示例代码修改成tp中直接使用的示例代码,并简单的做了扫码支付以及回调功能
用的是模式2,有必要你可以直接拿模式一的代码执行就可以的。
类的导入看一下我的导入你就明白怎么导入了。以后再也不用担心这个玩意儿了。
代码参考如下
生成支付二维码的实例代码:public function index() {
        import ( "@.Controller.WxPay.WxPayNativePay" );
        $notify = new \WxPayNativePay ();
        $url1 = $notify->GetPrePayUrl ( "123456789" );
        // 模式二
        /**
         * 流程:
         * 1、调用统一下单,取得code_url,生成二维码
         * 2、用户扫描二维码,进行支付
         * 3、支付完成之后,微信服务器会通知支付成功
         * 4、在支付成功通知中需要查单确认是否真正支付成功(见:notify.php)
             * @作者 希尔瓦柯
             * @时间 2016-9-22下午3:41:59
         */
        // $price = $_POST ['price'];
        // $prodect_id = $_POST ['prodect_id'];
        // $premission_name = $_POST ['premission_name'];
        $price = 0.01;
        $prodect_id = rand ( 2, 8 );
        $premission_name = $prodect_id;
        // 开始处理
        $input = new \WxPayUnifiedOrder ();
        $input->SetBody ( "xxxx---" . $premission_name );
        $input->SetAttach ( "xxxxx-Attach" );
        $input->SetOut_trade_no ( \WxPayConfig::MCHID . date ( "YmdHis" ) );
        $input->SetTotal_fee ( $price * 100 );
        $input->SetTime_start ( date ( "YmdHis" ) );
        $input->SetTime_expire ( date ( "YmdHis", time () + 600 ) );
        $input->SetGoods_tag ( "xxx-tag" );
        $input->SetNotify_url ( "http://xxxx.com/wxtest/index.php/home/Index/notify" );
        $input->SetTrade_type ( "NATIVE" );
        $input->SetProduct_id ( rand ( 4, 8 ) );
        $result = $notify->GetPayUrl ( $input );
        $url2 = $result ["code_url"];
        // 生成二维码
        error_reporting ( E_ERROR );
        import ( "@.Controller.WxPay.PHPQRCODE" );
        $url = urldecode ( $url2 );
        \QRcode::png ( $url );
    }
微信支付回调处理的实例代码:/**
     * @功能描述:微信支付回调处理
     * @作者 希尔瓦柯
     * @时间 2016-9-22下午3:41:59
     */
    public function notify() {
        // 获取微信回调的数据
        $notifiedData = $GLOBALS ['HTTP_RAW_POST_DATA'];
        // 加载相关的类
        import ( "@.Controller.WxPay.WxPayNativePay" );
        import ( "@.Controller.WxPay.WxPayData" );
        import ( "@.Controller.WxPay.WxPayNotify" );
        import ( "@.Controller.WxPay.PayNotifyCallBack" );
        $xml_to_arr = \WxPayDataBase::FromXml_4_babbage ( $notifiedData );
        // 转成数组 并写入缓存
        F ( "wx_notified_data", $xml_to_arr);
        // 吧xml原型也写入xml
        F ( "wx_notified_data_xml", $notifiedData );
        
        // 给微信返回支付状态值
        $notify = new \PayNotifyCallBack ();
        // 返回状态
        $notify->Handle ( false );
    }
希望像我这样技术弱的同行有所帮助

附件 wxpay4tp.zip ( 1.25 MB 下载:1061 次 )

评论( 相关
后面还有条评论,点击查看>>