//小程序跳转
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();
}
}
php 实现公众号小程序跳转
最新推荐文章于 2023-12-20 09:41:56 发布