微信授权登录+微信公众号支付
2018-06-22 05:20:10来源:未知 阅读 ()
记录工作备忘
采用TP3.2.3来二开--主要是微信授权登录、js自定义分享、支付+回调
1)先在公众号获取相关配置参数,配置公众号的网页授权域名、js接口域名
// 微信配置参数 'wechat_option' => array( 'appid' => 'w****a769023a', 'appsecret' => 'c****0accc10d19e5f85541b9' ), // 微信支付配置 'WEIXINPAY_CONFIG' => array( 'APPID' => 'wx***5a769023a', 'MCHID' => '1***001', //商户号 'KEY' => 'f****djgfjgyukuyklr', 'APPSECRET' => 'cc*****10d19e5f85541b9', // 'NOTIFY_URL' => 'http://t4.hzrt.cn/member/notify' 'NOTIFY_URL' => 'http://t***t.cn/Api/Weixinpay/notify' //支付回调地址,外网能直接访问(避免继承memberbase控制器) ),
2)授权登录
a.先获取code
b.通过code获取access_token、openid
c.通过access_token、openid获取用户信息
if(is_weixin()){ $code = I('get.code'); $wechat_option = C('wechat_option'); $appid = $wechat_option['appid']; $appsecret = $wechat_option['appsecret']; if(empty($code)){ // 获取code $redirect_uri = 'http://t4.hzrt.cn/user/login'; $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appid}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect"; redirect($url); } // 通过code获取access_token,openid $result = json_decode(file_get_contents("https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appid}&secret={$appsecret}&code={$code}&grant_type=authorization_code"), true); $access_token = $result['access_token']; $openid = $result['openid']; // 通过access_token,openid获取用户信息 $userinfo = json_decode(file_get_contents("https://api.weixin.qq.com/sns/userinfo?access_token={$access_token}&openid={$openid}"), true);
// 执行后续自己的操作 $row = $this->users_model->where(array('openid' => $userinfo['openid']))->find();
// 执行后续自己的操作
3)微信js自定义分享
a.建立好JSSDK类文件
b.封装好分享参数并实例化JSSDK
c.页面引入接口js文件,配置接口config调用
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> // 引入接口js文件 <script type="text/javascript"> // 接口配置 wx.config({ debug: false, appId: '<?php echo $signPackage["appId"];?>', timestamp: <?php echo $signPackage["timestamp"];?>, nonceStr: '<?php echo $signPackage["nonceStr"];?>', signature: '<?php echo $signPackage["signature"];?>', jsApiList: [ // 所有要调用的 API 都要加到这个列表中 'onMenuShareTimeline', 'onMenuShareAppMessage' ] }); wx.ready(function () { wx.checkJsApi({ jsApiList: [ 'onMenuShareTimeline', 'onMenuShareAppMessage' ], success: function (res) { // alert(JSON.stringify(res)); } }); // 在这里调用 API wx.onMenuShareTimeline({ title: "{$share['title']}", // 分享标题 link: "{$share['url']}", // 分享链接 imgUrl: "http://{$serverdo}{$share['img_url']}", // 分享图标 success: function () { // 用户确认分享后执行的回调函数 $.ajax({ type : 'post', url : '{:U("portal/member/share_success")}', data : { 'silver_bean' : 10 }, dataType : 'json', success:function(){ } }); }, cancel: function () { // 用户取消分享后执行的回调函数 } });
4)微信公众号调用jsapi支付
2.http://www.cnblogs.com/0201zcr/p/5131602.html
3.http://www.cnblogs.com/txw1958/p/weixin-js-sharetimeline.html
4.http://baijunyao.com/article/78
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- thinkPHP5项目中实现QQ第三方登录功能 2020-02-19
- 详解Yii2框架实现登录、退出及自动登录功能的方法 2019-12-15
- 微信公众平台开发之配置与请求 2019-09-23
- 微信支付:chooseWXPay:fail, the permission value is offl 2019-07-24
- 微信支付和微信支付通知基于sdk的说明 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash