sns_binding.model.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. /**
  3. * 站外分享绑定
  4. *
  5. */
  6. defined('InShopNC') or exit('Access Invalid!');
  7. class sns_bindingModel extends Model{
  8. public function __construct(){
  9. parent::__construct('member');
  10. }
  11. /**
  12. * 获得可显示的绑定接口数组
  13. */
  14. public function getUsableApp($member_id){
  15. if (empty($member_id)){
  16. return false;
  17. }
  18. $app_arr = $this->getApps();
  19. $app_arrnew = array();
  20. //判断系统是否开启站外分享功能
  21. foreach ($app_arr as $k=>$v){
  22. if (C('share_'.$k.'_isuse') == 1){
  23. $v['isbind'] = false;
  24. $app_arrnew[$k] = $v;
  25. }
  26. }
  27. if(empty($app_arrnew)) return false;
  28. //查询该用户的绑定信息
  29. $bind_list = $this->table('sns_binding')->where(array('snsbind_memberid'=>$member_id))->select();
  30. if (!empty($bind_list)){
  31. foreach ($bind_list as $k=>$v){
  32. if (intval($v['snsbind_updatetime'])+intval($v['snsbind_expiresin']) > time()){
  33. $app_arrnew[$v['snsbind_appsign']] = array_merge($app_arrnew[$v['snsbind_appsign']],$v);
  34. $app_arrnew[$v['snsbind_appsign']]['isbind'] = true;
  35. }
  36. }
  37. }
  38. return $app_arrnew;
  39. }
  40. /**
  41. * 获得某用户已经绑定某接口详细信息
  42. */
  43. public function getUsableOneApp($member_id,$appkey){
  44. $bind_info = array();
  45. if (empty($member_id) || empty($appkey)){
  46. return $bind_info;
  47. }
  48. $app_arr = $this->getApps();
  49. $appkey_arr = array_keys($app_arr);
  50. if (!in_array($appkey,$appkey_arr)){
  51. return $bind_info;
  52. }
  53. //查询该用户是否已经绑定
  54. $where_arr = array();
  55. $where_arr['snsbind_memberid'] = $member_id;
  56. $where_arr['snsbind_appsign'] = $appkey;
  57. $bind_info = $this->table('sns_binding')->where($where_arr)->find();
  58. if (intval($bind_info['snsbind_updatetime'])+intval($bind_info['snsbind_expiresin']) <= time()){
  59. $bind_info = array();
  60. }
  61. return $bind_info;
  62. }
  63. /**
  64. * 分享接口数组
  65. */
  66. public function getApps(){
  67. $app_arr = array();
  68. $app_arr['qqweibo'] = array('name'=>Language::get('nc_shareset_qqweibo'),'url'=>"http://t.qq.com",'applyurl'=>'http://dev.t.qq.com');
  69. $app_arr['sinaweibo'] = array('name'=>Language::get('nc_shareset_sinaweibo'),'url'=>"http://www.weibo.com",'applyurl'=>'http://open.weibo.com/developers');
  70. return $app_arr;
  71. }
  72. /**
  73. * qqweibo用图片URL发表带图片的微博
  74. */
  75. public function addQQWeiboPic($bindinfo,$params){
  76. $_SESSION['qqweibo']['t_access_token'] = $bindinfo['snsbind_accesstoken'];
  77. $_SESSION['qqweibo']['t_openid'] = $bindinfo['snsbind_openid'];
  78. include_once(BASE_DATA_PATH.DS.'api'.DS.'snsapi'.DS.'qqweibo'.DS.'tencent.php');
  79. $params_qqweibo['content'] = $params['title'].$params['comment'].$params['url'];
  80. $params_qqweibo['pic_url'] = $params['images'];
  81. Tencent::api('t/add_pic_url', $params_qqweibo, 'POST');
  82. }
  83. /**
  84. * sinaweibo上传图片并发布一条新微博
  85. */
  86. public function addSinaWeiboUpload($bindinfo,$params){
  87. include_once(BASE_DATA_PATH.DS.'api'.DS.'snsapi'.DS.'sinaweibo'.DS.'config.php');
  88. include_once(BASE_DATA_PATH.DS.'api'.DS.'snsapi'.DS.'sinaweibo'.DS.'saetv2.ex.class.php');
  89. $c = new SaeTClientV2( C('share_sinaweibo_appid') , C('share_sinaweibo_appkey') , $bindinfo['snsbind_accesstoken']);
  90. if($params['images']) {
  91. $c->upload($params['title'].$params['comment'].$params['url'],$params['images']);
  92. } else {
  93. $c->update($params['title'].$params['comment'].$params['url']);
  94. }
  95. }
  96. }