需要一个公众号(认证过的)
在公众号后台基本配置-IP白名称中添加服务器IP白名称(accesstoken要求)
在公众号后台公众号设置-功能设置中添加JS接口域名,下载认证文件
后端代码下载PHP示例文件 http://demo.open.weixin.qq.com/jssdk/sample.zip
access_token和jsapi_ticket.php放在/public下,这是两个缓存文件
jssdk.php放在app的controller目录下,并为其添加命名空间
<?php
namespace app\[ appname] \wxapi;
class Jssdk {
use app\[ appname] \wxapi\Jssdk;
$jssdk = new Jssdk ( "myappid" , "mysecrit" ) ;
$signPackage = $jssdk -> GetSignPackage ( ) ;
return $this -> fetch ( '' , [ 'vo' => $signPackage ] ) ;
< html>
< head>
< script src = ' http://res.wx.qq.com/open/js/jweixin-1.6.0.js' > </ script>
</ head>
< body>
< div class = " container" > </ div>
< script>
wx. config ( {
debug : false ,
appId : '{$vo["appId"]}' ,
timestamp : '{$vo["timestamp"]}' ,
nonceStr : '{$vo["nonceStr"]}' ,
signature : '{$vo["signature"]}' ,
jsApiList : [
"chooseImage" , "previewImage" , "uploadImage" , "downloadImage" ,
"onMenuShareTimeline" ,
"onMenuShareAppMessage"
]
} ) ;
wx. ready ( function ( ) {
wx. onMenuShareAppMessage ( {
title : '分享标题' ,
desc : '描述' ,
link : location. href,
imgUrl : 'http://mydomainname/images/share.png' ,
success : function ( ) {
alert ( "成功" ) ;
} ,
cancel : function ( ) {
alert ( "失败" )
}
} ) ;
} ) ;
function album ( ) {
wx. chooseImage ( {
count : 1 ,
sizeType : [ 'original' , 'compressed' ] ,
sourceType : [ 'album' , 'camera' ] ,
success : function ( res ) {
var localIds = res. localIds;
wx. uploadImage ( {
localId : localIds[ 0 ] ,
isShowProgressTips : 1 , 默认为1 ,显示进度提示
success : function ( data ) {
mediaId = data. serverId;
$. ajax ( {
"type" : "post" ,
"url" : "/myappcontroller/getimg" ,
"dataType" : "json" ,
"data" : { "mediaId" : mediaId} ,
"success" : function ( res ) {
$ ( "#pics" ) . val ( res. f)
$ ( "#picsadd" ) . before ( '<div class="imgplace"><img src="/upload/' + res. f + '" class="upimg" /></div>' )
}
} ) ;
} ,
fail : function ( error ) {
alert ( JSON . stringify ( error) ) ;
}
} ) ;
}
} ) ;
}
</ script>
</ body>
</ html>
9.如果分享是不出现链接,就先把链接添加到微信收藏,再从收藏中打开进行分享
上传图片的后台PHP文件:
public function getimg ( ) {
$mediaid = input ( 'post.mediaId' ) ;
try {
$jssdk = new Jssdk ( "XXX" , "XXX" ) ;
$access_token = $jssdk -> getAccessToken ( ) ;
$url = "https://api.weixin.qq.com/cgi-bin/media/get?access_token=" . $access_token . "&media_id=" . $mediaid ;
$content = $jssdk -> httpGet ( $url ) ;
$user_path = $_SERVER [ 'DOCUMENT_ROOT' ] . '/upload/' ;
$filename = time ( ) . rand ( 10 , 99 ) . '.jpg' ;
$filePath = $user_path . $filename ;
file_put_contents ( $filePath , $content ) ;
} catch ( Exception $exp ) {
return json ( array ( "msg" => $exp ) ) ;
}
return json ( array ( "f" => $filename ) ) ;
}