php 实现公众号小程序跳转

    //小程序跳转
    private function sendxsbilldd_msg_with_openID(){
        $data = array();
        $msg = Db::table('wxxsbilldd_msg')->where('issend', '0')->limit(1)->select();
        if ($msg == null) {
            dump("订单无数据发送失败-openid");
            return;
        }
        $outindex = 0;
        $guid_xsbill = $msg[$outindex]['guid_xsbill'];
        $data_m = Db::table('wxxsbilldd_m')->where('aguid', $guid_xsbill)->select();
        $data_d = Db::table('wxxsbilldd_d')->where('guid_m', $guid_xsbill)->select();
        $items_d = count($data_d); //项数
        $items = (int)$data_m[0]['items'];

        if ( $items !== $items_d){
            dump("订单数据未同步完成-openid".$items.'  '.$items_d.' '.$data_m[0]['aguid'] );
            return ;
        }

        $acode = $data_m[0]['prdacode']; //生产订单号
        $day_yw = $data_m[0]['date_yw']; //时间
        $khaname_long = $data_m[0]['khaname_long']; //客户名称
        $sy = round($data_m[0]['sy'], 2);    //总金额
        $qty = round($data_m[0]['qty'], 2);  //数量
        $aguid = '?id=' . $data_m[0]['aguid'];     //参数ID
        //模板消息拼接
        $touser = $msg[$outindex]['openid'];
        $data = [
            "touser" => $touser,
            "template_id" => $this->template_id,
            "url" => $this->url_openid ,
            "miniprogram"=>array(
                "appid"=>$this->openid,
                "pagepath"=>$this->pathpage.$aguid,
            ),
            "data" => array(
                "first" => array("value" => $this->companyname,"color" => $this->color),
                "keyword1" => array("value" => $khaname_long,"color" => $this->color),
                "keyword2" => array("value" => $acode,"color" => $this->color),
                "keyword3" => array("value" => $items_d,"color" => $this->color),
                "keyword4" => array("value" => $qty,"color" => $this->color),
                "keyword5" => array("value" => $sy.'元',"color" => $this->color),
                "remark" => array("value" => $day_yw,"color" => $this->color),
            )
        ];

        //模板消息发送
        $access_token = $this->getWxAccessToken();
        $msgurl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=". $access_token; // 发送模板消息接口
        
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $msgurl);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        // 我们在POST数据哦!
        curl_setopt($ch, CURLOPT_POST, 1);
        // 把post的变量加上
        $json_template = json_encode($data);
        curl_setopt($ch, CURLOPT_POSTFIELDS, urldecode($json_template));
        curl_exec($ch);
        curl_close($ch);

        dump($data);
        dump($msgurl);

        //更新 issend 状态
        Db::startTrans();
        try {
            Db::table('wxxsbilldd_msg')->where('aguid', $msg[$outindex]['aguid'])->update(['issend' => '1']);
            Db::commit();
            dump("订单更新完成-openid");
        } catch (Exception $e) {
            Db::rockback();
        }
    }

微信公众号跳转小程序是微信平台提供的一个功能,允许公众号文章或者菜单中嵌入小程序跳转链接,从而使得用户能够在阅读公众号内容的同时,轻松跳转小程序进行进一步的互动或服务。在Vue3中,要实现这一功能,你需要遵循以下步骤: 1. **配置公众号后台**:首先,你需要在微信公众平台后台配置业务域名,确保你的Vue3项目服务器地址在白名单中,这样才能正常访问小程序的页面。 2. **获取小程序信息**:在公众号管理后台,你需要设置小程序跳转信息,包括跳转小程序的AppID等信息。 3. **页面跳转**:在Vue3项目中,可以使用微信小程序提供的API来实现跳转。通常是在某个按钮或者链接的点击事件中调用微信JS-SDK的`wx.navigateToMiniProgram`方法。 例如,你可以编如下代码: ```javascript // 假设在某个组件的methods中 navigateToMiniProgram() { const miniProgram = { id: '', // 填入小程序原始id path: 'pages/index/index', // 拉起小程序页面的可带参路径,不填默认拉起小程序首页 type: 1 // 1表示开发版,2表示体验版,3表示正式版 }; // 调用微信JS-SDK的跳转方法 wx.navigateToMiniProgram({ miniProgram: miniProgram, success: () => { // 调用成功后的回调函数 }, fail: () => { // 调用失败后的回调函数 } }); } ``` 4. **调试和发布**:在本地调试确保跳转功能无误后,发布你的Vue3项目,并在公众号中进行实际的测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Listest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值