記錄工做備忘javascript
採用TP3.2.3來二開--主要是微信受權登陸、js自定義分享、支付+回調php
1)先在公衆號獲取相關配置參數,配置公衆號的網頁受權域名、js接口域名html
// 微信配置參數 '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)受權登陸java
a.先獲取codeajax
b.經過code獲取access_token、openidjson
c.經過access_token、openid獲取用戶信息api
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類文件app
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