微信实现不关注也能微信支付
需要再次补充,若多个公众号,实现同一个商户支付情况下,此方法即可实现
第一步:思维导图

对上图的(1)进行说明:
到官网下站sdk代码。本例是php代码
官网代码:
public function wxget() { //非微信环境下不允许使用此方法 if(!is_wechat_browser()) { return false; } //当在微信环境中 if(!isset($_GET['getid']) && !$_SESSION['openid']) { if(isset($_SESSION['user_id'])) { $openid = users::load()->get_openid($_SESSION['user_id']); $redirect_url = urlencode('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . '?'. $_SERVER['QUERY_STRING']);//记住当前所浏览的页面,返回时用到 if(empty($openid)) { $target_url = 'http://mpweixin.xx.com/wxget.php?url=' . $redirect_url; ecs_header('Location:' . $target_url); } } } //接受到的数据。 elseif(isset($_GET['getid']) && isset ($_GET['nonce']) && isset ($_GET['sign'])) { $key = '密钥';$data = array( 'getid' => trim($_GET['getid']), 'nonce' => trim($_GET['nonce']), 'sign' => trim($_GET['sign']), ); $bool = encryController::load()->checkSignByUrl($data, $key);//验证单向散列签名 if($bool) { $_SESSION['openid'] = $data['getid']; } else { unset($_SESSION['openid']); } } }
授权回调页面域名下的网站代码
$openid = openidController::load()->getOpenid();//获取sdk里的openid if(isset($_GET['url'])) {//判断是否带url $url = trim($_GET['url']); if(strpos($url, '?') !== 0) { $url .= '&getid=' . $openid; } else { $url .= '?getid=' . $openid; } } else { $url = 'http://您的官网地址/index.php?getid=' . $openid; } //进行签名 $url = openidController::load()->addSignUrl($url);//进行单向散列算法,生成一个签名
//返回的格式url为:http://您的官网/wx.php?getid=oZi2Qw1buSdPX6nY2YxudKBGG66E&nonce=h4280t9laf13k051fm271u029xd5ruux&sign=cbb6aec43085031ec3c4ad167b1c20c6 header('Location:'. $url);//带着openid跳回官网
本文来自博客园,作者:三百里江山,转载请注明原文链接:https://www.cnblogs.com/300js/p/5578150.html

浙公网安备 33010602011771号