| <?php
|
| $nosession=true;
|
| include("../includes/common.php");
|
| if(isset($_GET['sid'])){
|
| $sid = trim(daddslashes($_GET['sid']));
|
| if(!preg_match('/^(.[a-zA-Z0-9]+)$/',$sid))exit("Access Denied");
|
| session_id($sid);
|
| session_start();
|
| }
|
|
|
| @header('Content-Type: text/html; charset=UTF-8');
|
|
|
| $is_alipay = false;
|
|
|
| if(isset($_GET['wechatid'])){
|
| $wechatid = intval($_GET['wechatid']);
|
| }elseif(isset($_GET['channel'])){
|
| $channelid = intval($_GET['channel']);
|
| }else{
|
| if(!$conf['transfer_wxpay'])sysmsg("未开启微信企业付款");
|
| $channelid = $conf['transfer_wxpay'];
|
| }
|
| if($wechatid){
|
| $wxinfo = \lib\Channel::getWeixin($wechatid);
|
| if(!$wxinfo)sysmsg('该微信公众号不存在');
|
| }else{
|
| $channel = \lib\Channel::get($channelid);
|
| if(!$channel)sysmsg('当前支付通道信息不存在');
|
| if($channel['plugin'] == 'alipay' || $channel['plugin'] == 'alipaysl' || $channel['plugin'] == 'alipayd' || $channel['plugin'] == 'alipayrp'){
|
| $is_alipay = true;
|
| }else{
|
| $wxinfo = \lib\Channel::getWeixin($channel['appwxmp']);
|
| if(!$wxinfo)sysmsg('支付通道绑定的微信公众号不存在');
|
| }
|
| }
|
|
|
| if($is_alipay){
|
| $alipay_config = require(PLUGIN_ROOT.$channel['plugin'].'/inc/config.php');
|
| $oauth = new \Alipay\AlipayOauthService($alipay_config);
|
| $redirect_uri = $siteurl.'user/openid.php?channel='.$channelid;
|
| if(isset($_GET['app_auth_code'])){
|
| try{
|
| $result = $oauth->getAppToken($_GET['app_auth_code']);
|
| $_SESSION['alipay_app_token'] = $result['app_auth_token'];
|
| $openid_name = 'AppAuthToken';
|
| $openid_content = $result['app_auth_token'];
|
| }catch(Exception $e){
|
| sysmsg('支付宝获取授权Token失败!'.$e->getMessage());
|
| }
|
| }elseif(isset($_GET['auth_code'])){
|
| try{
|
| $result = $oauth->getToken($_GET['auth_code']);
|
| if(!empty($result['user_id'])){
|
| $user_id = $result['user_id'];
|
| $openid_name = '支付宝UID';
|
| }else{
|
| $user_id = $result['open_id'];
|
| $openid_name = '支付宝OpenId';
|
| }
|
| $_SESSION['alipay_user_id'] = $user_id;
|
| $openid_content = $user_id;
|
| }catch(Exception $e){
|
| sysmsg('支付宝快捷登录失败!'.$e->getMessage());
|
| }
|
| }elseif(isset($_GET['act']) && $_GET['act']=='app_auth'){
|
| $oauth->appOauth($redirect_uri);
|
| }elseif(isset($_GET['act']) && $_GET['act']=='app_auth_assign'){
|
| [$pc_url, $app_url] = $oauth->appOauthAssign($redirect_uri, ['MOBILEAPP','WEBAPP','PUBLICAPP','TINYAPP','BASEAPP']);
|
| if(checkmobile()){
|
| header("Location: $app_url");
|
| }else{
|
| header("Location: $pc_url");
|
| }
|
| exit;
|
| }else{
|
| $oauth->oauth($redirect_uri);
|
| }
|
| }else{
|
| try{
|
| $tools = new \WeChatPay\JsApiTool($wxinfo['appid'], $wxinfo['appsecret']);
|
| $openId = $tools->GetOpenid();
|
| }catch(Exception $e){
|
| sysmsg($e->getMessage());
|
| }
|
|
|
| $_SESSION['openid'] = $openId;
|
|
|
| $openid_name = 'OpenId';
|
| $openid_content = $openId;
|
| }
|
| include PAYPAGE_ROOT.'openid.php'; |