android 微信登陆,支付宝分享,分享同时不能用了 是怎么回事

Android平台第三方应用分享到微信开发 | 查问题
汇聚最新编程技术,编程问题一网打尽
& Android平台第三方应用分享到微信开发
Android平台第三方应用分享到微信开发
[ 分类: ]
一、申请APPID
微信公共平台和微博分享一样,也需要申请一个ID,来作为调起微信、分享到微信的唯一标识。
申请微信APPID可以到微信平台上申请。具体的申请流程网站上有很详细的介绍,我这里就仅列出一些注意事项:
(1)申请APPID时的应用名字审核通过之后将不允许更改,所以申请时的应用名字一定要提前确定好。微信官方也有详细说明,如下图:
(2)应用签名问题:应用签名一定要填写正确,否则会出现第三方应用拉不起微信的情况。
首先可以下载微信官方提供的一个签名生成工具,打开这个应用输入第三方应用的包名就能拿到用于微信的应用签名。但是这里也有需要注意的地方:
1.我们平时开发使用的keystore是C:Usersliwei.android debug.keystore,而发布正式版肯定会有一个特定的keystore(比如:XXX.keystore)。因此,我们很有必要申请两个APPID,一个用于开发测试用,另一个用于正式发版。这样能够更方便平时的开发。
2.假如想使用别人的APPID或者运行别人的demo,可以按下面的步骤来做:
在eclipse中打开window—&preferences—-&Android—-&build如下图所示:
将别人的C:Usersliwei.android debug.keystore(微信提供的例子中有带这个debug.keystore,所以想运行微信提供的例子要在这里加载debug.keystore),在这加载进来,就可以使用了。
&&&&&&&& (3)申请成功之后的APPID如下:
二、使用微信API接口
1、微信开放平台的一些公共类
(1)微信SDK会用到的主要类的类图
上面这张图展示的是与微信通信过程中的请求类和响应类。第三方应用通过他们
附带的message字段来携带消息传输给微信进程。其中BaseResp有个内部类是ErrCode,它里面定义了几个常量字段,当我们向微信发送请求后它会作为返回字段返回到我们的应用中来,我们可以根据这个做相应的处理(比如弹个toast来提醒用户分享的状态)。
(2)Message相关的类图
上面提到过,第三方应用是通过请求类和响应类中的message字段来和微信通信的,那么下面的图就展示了Message相关类的类图:
第三方应用和微信就是通过上面的不同种类的Message对象来与微信进行通信,从而能达到想要的效果。
(3)通信相关类
上面的IWXAPI就是所说的通信类,所有与微信进行通信的工作都是他在做,我们可以通过下面的工厂类来生成一个IWXAPI对象。旁边的IWXAPIEventHandler接口是需要我们第三方应用来实现的,如果我们想处理微信的请求信息或是我们向他发请求后他返回的标识字段,我们可以按照实现这个接口(可以参考微信开放平台文档上有详细说明)。
2.1.2微信与第三方应用通信时序图
(4)第三方应用向微信发送消息时的时序图
应用只需要进行一次注册就行了,我们可以在一个Acitivity的onCreate()中注册。然后在以后的使用中只需要封装消息,让通信类发送即可。从前面的类图中可以看到,封装消息的顺序是首先生成需要发送的媒体对象,然后将媒体对象附加到消息对象中,接着建立请求对象,最后使用通信类发送即可。
在向微信发送消息的时候,会弹出一个分享到微信的弹框,包括分享到微信之后的消息展示,都是微信自己定义的UI展示,第三方应用是无法控制的(只是对不同消息类型,微信的展示也是不同的)。
下面就对代码做简单的引导性介绍,微信平台做的还是比较不错的。举一反三,就能做出来微信的对应功能了。
其对应的代码大致如下:
注册到微信
封装Message(以&为例)和发送到微信
(5)第三方应用接收微信请求信息的时序图
微信向第三方发送的请求信息分为两种:一种是第三方应用注册到微信后在聊天界面出现的应用图标(如下图所示)。然后点击这个图标能向第三方应用发送请求,第二种是针对微信的WXAppExtendObject类型的对象的,当用户点击了微信中的消息之后,微信就会去请求第三方应用完成请求。
它的时序图如下所示:
下面对第三方应用接收微信发送的消息的代码做一些简单的介绍,按照以下步骤来就可以了。
1.在工程中建立包名.wxapi的包,其中包名只的是AndroidManifest.xml下面配置的packageN
2.在新建的包下面新建一个WXEntryActivity类继承Activity,同时实现IWXAPIEventHandler接口(前面有提到过这个接口,用来接受微信的请求和返回信息)。
3.在onCreate()中调用 mApi.handleIntent(getIntent(),this);来等待微信的回调
4.实现IWXAPIEventHandler的onReq(微信发送请求到第三方应用时,会回调到该方法)和onResp(第三方应用发送到微信的请求处理后的响应结果,会回调到该方法)方法
5.另外需要注意在AndroidManifest.xml中配置WXEntryActivity时需要加上android:exported=”true”,主要是为了使微信进程能够调用第三方应用的进程。
其代码如下:
//在onCreate()中调用handleIntent().来等待微信进程的调用。
//微信进程请求第三方应用的回调。
//第三方应用发送Message到微信之后,微信返回的状态信息。
3.使用微信API注意事项
3.1微信公共平台问题
微信作为一个公共平台,还有一些自身的问题,下面是对我碰到的问题做一些描述:
第三方应用是根据微信添加的参数isappinstalled来判断接收方手机上是否已安装了APP,但是经验证发现,微信的这个判断并不准确,即有时候用户手机上安装了APP,但是isappinstalled的值却为0;有时候没装APP,isappInstalled的值又为1。已经将这个问题反映给了微信团队。
测试过程中会出现这种情况,会有个别手机会出现调不起微信客户端的情况。造成这种情况的原因是微信对缩略图的大小、title、description等参数的大小做了限制,所以有可能是大小超过了默认的范围。一般情况下缩略图超出比较常见。Title、description都是文本,一般不会超过。
3、分享到朋友圈时,是直接在第三方应用上弹出了分享框(这个有区别于分享给好友),分享完成之后,通过HOME键再回到微信,发现分享框依旧存在,并且还出现在桌面上。个人猜测,由于微信分享是新开了一个线程来处理,分享完成之后进程并没有被杀死,所以通过HOME键返回微信的时候会用到该进程。这个问题已经向微信反映。
4、通过第三方应用打开微信,假如用户没登录微信,会让用户登录微信,但是登录完成之后登录框还存在,并且这个时候其实已经登录成功了。造成这个问题的原因应该和第三个问题原因相似。
5、按照微信的要求,需要在工程中新建一个&应用包名.wxapi&的包,并在其下建立一个WXEntityActivity类。那么分享完成之后可能有两种情况发生:
&(1)假如没做任何处理,那么分享完成之后回到第三方应用界面会是一个黑色的界面,啥也没有。
&(2)假如在WXEntityActivity类中在IWXAPIEventHandler接口的实现方法onResp()中调用finish()方法将WXEntityActivity销毁掉,那么分享完成之后将会闪过一个黑色的界面回到第三方应用。
综上,其实我们可以发现,微信分享完成之后会到WXEntityActivity这个Activity中,第一种情况,因为WXEntityActivity没有布局文件,所以就是一个黑色的界面。第二种情况,由于finish掉了WXEntityActivity 这个Activity,所以是黑了一下。
这种情况将WXEntityActivity作为应用的界面展示就没有问题了,但是正常情况下,我们都是在已有的项目上加微信分享这个逻辑,所以,代码迁移也是影响比较大的。解决方法是可以用Android系统提供的android:theme=”@android:style/Theme.NoDisplay”。
6、可以反编译下微信的源码看看。
&以上的部分图片是从其它人写的博客里copy过来的。欢迎大家交流学习。微信支付在Android和IOS上表现不一致 怎么破! - 开源中国社区
当前访客身份:游客 [
当前位置:
function pay(){
WeixinJSBridge.invoke('getBrandWCPayRequest', &?php echo $weixin_pay_ ?&, function(res){
if(res.err_msg == &get_brand_wcpay_request:ok&){}
做过微信支付的都应该知道上面的一个JS支付API吧 我就不废话了
上面PHP输出的是一个json对象,里面包含订单信息什么的。
问题是如果是PHP直接输出的,在安卓和ios都没问题,但是如果是ajax传过来的,像下面这样
function pay(pay_params) {
WeixinJSBridge.invoke('getBrandWCPayRequest', pay_params, function(res){
if(res.err_msg == &get_brand_wcpay_request:ok&){}
var ajax_data = {
url: 'xxx',
type: 'POST',
dataType: 'JSON',
ajax_data.success = function(json){
var param = eval( '('+ json.msg +')' );
pay(param);
$.ajax(ajax_data); Android上面完全没问题,IOS则会报Args error,没法支付……
不知道有没有人遇到这样的情况 怎么解决的?
附上项目实例:/index.php?act=kgy
在微信里面打开,大家可以分别在安卓和IOS的微信里面试下,看看是不是这样……
共有10个答案
<span class="a_vote_num" id="a_vote_num_
关于微信上Android和IOS表现不一致的问题 我现在发现两个 已经全部解决了&喜极而泣……
第一个关于支付 为什么Android上面能支付而IOS上就不行了呢?
问题在于支付的时候JSON参数,必须全部是字符串(这个是我没有好好阅读文档,自以为Android上面可以支付了就一定不是我的问题,我认了)。
比如我的错误是参数中{&timeStamp&:},时间戳的值为整型,虽然Android上可以支付,但是IOS上就不行了,必须严格按文档上说的,键和值全部是字符串!这样{&timeStamp&:&&}才对!
第二个问题就有点不能理解了,Android上可以正确获取用户的收货地址,但是IOS上面会报err_msg:get_brand_grant_info:fail,err_desc:no authorized buffer empty
这个提示让人摸不着头脑了。后来我是怎么解决的呢?根据我几个星期Or一两个月之前的一次谷歌搜索上依稀记得好像某个参数的长度不能太长……
我看了下收货地址参数中的一个随机数,我用了32位,这样是不是太长了呢(对于IOS来说),于是我改成了12位长度,问题解决,欧了……文档上关于这个随机数的长度没有任何说明
最后也感谢
让我省去了参数在客户端转换格式的冗余步骤,希望上面的经验能帮到后面写微信接口的同学们……
--- 共有 2 条评论 ---
: 以前搜索问题遇见过太多次,提问者问了问题 然后不知怎么解决了 就只在网上留下一句“我已经解决了”之类的,对这种人真是深恶痛绝!
所以我解决的问题都尽量详细写下来,很高兴帮到你
(2年前)&nbsp&
首先,感谢你的分享!
我在做支付的过程中,也遇到同样的问题,Android和ios上不同,网上的资料很少,但幸运的是我看到了你的回复,让我的问题迎刃而解!
真的无法表达自己的心情,经历过太多次遇到问题一直找不到答案的时候,这次我真的很幸运,非常感谢!
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
按道理来说平台之间的差异不是应该由微信这边来屏蔽掉的吗?这个问题困扰好久了……很伤啊
<span class="a_vote_num" id="a_vote_num_
做微信支付的人这么少吗?连个打酱油的人都没有……
<span class="a_vote_num" id="a_vote_num_
不玩微信 微博的 默默的飘过.....
--- 共有 1 条评论 ---
打酱油也是一种支持……
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
dataType设定为'json'返回值会自动转换为js对象的,不用再eval()
--- 共有 7 条评论 ---
: 微信内嵌那个webview问题多多,兼容性(尤其是html5)很讨厌
(2年前)&nbsp&
试了 没在客户端转换 ios也是没戏 微信啊微信 呵呵了
(2年前)&nbsp&
: 嗯 当时微信封装的一个类 直接输出的就是json的形式了 就没想过用array 我改下这个类试试
(2年前)&nbsp&
: 直接把json.msg原始数据做成array就行了,为何要多此一举在客户端转换呢
(2年前)&nbsp&
: 嗯 parseJSON也试过了 效果一样的 IOS也是没法支付 所以后来项目里面也没动过了
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
/index.php?act=kgy 这个网页的图片显示尺寸120px,但不是用的缩略图,一个图片就800多kB……
--- 共有 1 条评论 ---
通宵赶出来的东西 见笑了
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
err_msg:get_brand_grant_info:fail,err_desc:no authorized buffer empty
这个问题有点奇葩。不过微信目前就是这样的,包括url某些参数的位置都有先后顺序的,并且POST数据到微信服务器时json的中文不能是\uxxxx的形式
<span class="a_vote_num" id="a_vote_num_
你们有谁知道 微信Android和IOS的JS接口统一之后 在Android本地代码改如何编写的嘛
<span class="a_vote_num" id="a_vote_num_
或者介绍下 原理也可以
<span class="a_vote_num" id="a_vote_num_
system:access_denied &蛋疼的问题啊
更多开发者职位上
有什么技术问题吗?
duandi...的其它问题
类似的话题Android:微信授权登录与微信分享全解析
在移动互联网浪潮中,联网APP已经把单机拍死在沙滩上,很多公司都希望自家应用能够有一套帐号,可是许多用户却并不一定买账:我凭啥注册你家应用的帐号?微博,微信,QQ几乎成了每个人手机中的必装应用,于是微信,微博,QQ说了:来来来,你们都可以用我家的帐号登录你家应用,只要你遵循OAuth2.0协议标准就行。于是第三方社交帐号登陆成为了许多新兴应用的选择,由于腾讯官方微信开放平台的在线文档相对最新的SDK有些出入,并且登录相关的文档结构次序有些紊乱,今天就把我的一些经验记录在此,对微信开放平台官方的在线文档进行一定的整理。同时微信分享可以扩大自身APP影响力,于是微信分享功能也是很多开发者需要的功能,一并整理在此,希望能对后来的同道朋友有所帮助。
授权流程说明
微信OAuth2.0授权登录让微信用户使用微信身份安全登录第三方应用或网站,在微信用户授权登录已接入微信OAuth2.0的第三方应用后,第三方可以获取到用户的接口调用凭证(access_token),通过access_token可以进行微信开放平台授权关系接口调用,从而可实现获取微信用户基本开放信息和帮助用户实现基础开放功能等。
微信OAuth2.0授权登录目前支持authorization_code模式,适用于拥有server端的应用授权。该模式整体流程为:
1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;
3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。
获取access_token时序图:
vcHLo6zWu8rH1NrP387EtbXDu9PQuPzQwrb40uyhozwvc3Ryb25nPjwvcD4NCjxwPs/Cw+a9q9LAtM69sr3izqLQxcrayKi1x8K8wfezzKGjy/nT0M34wufH68fzvvnOqkdFVMfrx/OhozwvcD4NCjxwcmUgY2xhc3M9"brush:">
1、获取临时票据code
2、获取access_token & openid
3、检查access_token是否有效
4、刷新或续期access_token
5、获取微信用户详细信息
获取临时票据code
前三条向右的箭头
// 发出授权申请
Final SendAuth.Req req = new SendAuth.Req();
req.scope = snsapi_
req.state = wechat_sdk_微信登录,分享demo_
api.sendReq(req);
上两条箭头向左的流程在代码体现出来的就是:
public void onResp(BaseResp resp) ;// 这个回调接口位于IWXAPIEventHandler中
返回的数据为resp,用作请求登录授权时,它是SendAuth.Resp的实例,携带的数据有:
ErrorCode:ERR_OK = 0(用户同意);ERR_AUTH_DENIED = -4(用户拒绝授权);ERR_USER_CANCEL = -2(用户取消)
code:用户换取access_token的code,仅在ErrCode为0时有效
state:第三方程序发送时用来标识其请求的唯一性的标志,由第三方程序调用sendReq时传入,由微信终端回传,state字符串长度不能超过1K
lang:微信客户端当前语言
country:微信客户端当前国家
以上数据均以static String形式存在SendAuth.Resp的resp对象中。
注意:当使用微信提供最新的SDK/library时,上面有些数据是不存在,微信开放平台的文档和API及SDK没有同步更新。读者可使用最下方微信登录,分享demo中的笔者使用的jar包构建工程。
获取access_token & openid
最后一条向右的箭头表示:使用得到的code,获取access_token,openid,接口为:
https://api./sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
注意:微信的接口链接是使用SSL的安全链接,普通的HttpClient访问会导致应用崩溃或报错,详细方法请下载最下方的微信登录,分享demo代码,或者点击下方链接直接搜索
谷歌搜索: 访问Https链接
百度搜索:Android 访问Https链接
应用唯一标识,在微信开放平台提交应用审核通过后获得
secret:应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
:填写第一步获取的code参数
grant_type:固定值,填authorization_code
最下方向左的箭头表示使用code访问完链接返回的数据,json携带的数据有:
access_token:接口调用凭证
expires_in:access_token的有效期,一般为7200(秒),也即是两小时
refresh_token:用户刷新access_token
openid:授权用户唯一标识
scope:用户授权的作用域,使用逗号(,)分隔
检查access_token是否有效
由于access_token有效期为两小时,所以进行下一步操作前最好进行一次检查,接口为:
https://api./sns/auth?access_token=ACCESS_TOKEN&openid=OPENID
传入的参数为accesss_token和openid。
access_token有效时返回的json是:
errcode:0,errmsg:ok
失效时的返回数据为:
errcode:40003,errmsg:invalid openid
如果access_token有效,则跳过下一步,失效时需要刷新或续期access_token。
刷新或续期access_token
access_token是调用授权关系接口的调用凭证,由于access_token有效期(目前为2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新,access_token刷新结果有两种:
1.若access_token已超时,那么进行refresh_token会获取一个新的access_token,新的超时时间;
2.若access_token未超时,那么进行refresh_token不会改变access_token,但超时时间会刷新,相当于续期access_token。
refresh_token拥有较长的有效期(30天),当refresh_token失效的后,需要用户重新授权。
刷新accessToken接口为:
https://api./sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
参数说明:
appid:应用唯一标识
grant_type:固定值,填refresh_token
refresh_token:填写前面获取到的refresh_token的值
返回的json数据有:
access_token:接口调用凭证
expires_in:access_token接口调用凭证超时时间,单位(秒)
refresh_token:用户刷新access_token
openid:授权用户唯一标识
scope:用户授权的作用域,使用逗号(,)分隔
获取微信用户详细信息
获取access_token,openid后,就可以用来获取更多用户信息,比如微信昵称,头像,性别等。接口为:
https://api./sns/auth?access_token=ACCESS_TOKEN&openid=OPENID
可获取的json携带的数据有:
openid:普通用户的标识,对当前开发者帐号唯一
nickname:普通用户昵称
sex:普通用户性别,1为男性,2为女性
province:普通用户个人资料填写的省份
city:普通用户个人资料填写的城市
country:国家,如中国为CN
headimgurl:用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空
privilege:用户特权信息,json数组,如微信沃卡用户为(chinaunicom)
unionid:用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。
微信登录的流程结束了, 至于开发者需要将那些用户信息上传到自家的app服务器就取决于开发者了。
1、微信分享分为微信好友分享,朋友圈分享,当然,还有收藏也是共用分享的接口,无需授权登录即可调用分享接口。
2、由于好友分享,朋友圈分享和收藏只是一个参数的区别,所以下面只讲好友分享,具体的可以下载最下方的微信登录,分享demo进行查看。
3、微信可以分享的内容包括,纯文字,图片,链接,音乐,视频,app,emoji表情等。
微信分享流程
1、在你的工程里面新建一个wxapi包,并且新建一个WXEntryActivity,继承Activity,或其他Activity(这两步是必须的,微信开发文档中有提到),详见:
https://open./cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=&token=&lang=zh_CN
2、并在manifest文件里面加上exported属性,设置为true。
3、实现一个IWXAPIEventHandler接口。
微信发送的请求将回调到onReq方法,发送到微信请求的响应结果将回调到onResp方法
在WXEntryActivity中将接收到的intent及实现了IWXAPIEventHandler接口的对象传递给IWXAPI接口的handleIntent方法,示例如下图:
当微信发送请求到你的应用,将通过IWXAPIEventHandler接口的onReq方法进行回调,类似的,应用请求微信的响应结果将通过onResp回调。
如果需要混淆代码,为了保证sdk的正常使用,需要在proguard.cfg加上下面两行配置:
-keep class com.tencent.mm.sdk.** {
微信分享详细代码流程是:
IWXAPI api = WXAPIFactory.createWXAPI(this, APP_ID, false);// 传入申请到的appid,得到一个IWXAPI的实例
api.registerApp(APP_ID);// 将app注册到微信列表,我不知道这是什么意思,有知道的请告诉我,谢谢!
// 开始分享纯文本到给好友
WXTextObject textObj = new WXTextObject();
textObj.text =
// 用WXTextObject对象初始化一个WXMediaMessage对象
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = textO
// 发送文本类型的消息时,title字段不起作用
// msg.title = W
msg.title = 分享文字标题;
msg.description =
// 构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction(text); // transaction字段用于唯一标识一个请求
req.message =
req.scene = SendMessageToWX.Req.WXSceneT// 表示发送场景为朋友圈,这个代表分享到朋友圈
// req.scene = SendMessageToWX.Req.WXSceneS//表示发送场景为好友对话,这个代表分享给好友
// req.scene = SendMessageToWX.Req.WXSceneT// 表示发送场景为收藏,这个代表添加到微信收藏
// 调用api接口发送数据到微信
api.sendReq(req);
上面大致的表现了一个分享纯文本给好友的场景,如果需要分享到朋友圈,只需要更改req.scene字段值。
1、其中IWXAPI.registerAPP(APP_ID)是官方demo中的一行代码,表示的是将app注册到微信列表,我并不知道有什么用,所谓的微信列表出现在哪儿?该行代码删除后,仍然可以获取登录授权,实现分享等功能。有知道的请告诉我,谢谢!
2、目前笔者遇到无法分享在线图片WXImageObject的问题,分享在线图片时出现分享界面右上角&发送&按钮灰色,无法点击的情况,希望分享成功的朋友告诉我,谢谢!问题如下图
要分享链接,图片,音乐,视频等需要将WXTextObject 对象改成对应的obj对象。详细请下载文章下方的微信登录,分享demo。
由于微信官方demo中并未提供微信登录的代码示例,分享的代码很齐全,可是分享在线图片的代码在我这里却又问题,所以笔者将自己的一些经验和遇到的坑总结在这里,包括了微信第三方登录,微信分享的内容,希望对大家有所帮助。也希望笔者在文中提到的问题有热心人能够解答
//1、 注册到微信列表有什么用,微信列表在哪儿可以看到
IWXAPI.registerApp(APP_ID);
//2、 我为什么无法使用以下代码分享在线图片
WXImageObject imgObj = new WXImageObject();
imgObj.imageUrl = imgU// 在线图片链接
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imgO
Bitmap bmp = BitmapFactory.decodeStream(new URL(url).openStream());
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
bmp.recycle();
msg.thumbData = Util.bmpToByteArray(thumbBmp, true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction(img);
req.message =
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneS
api.sendReq(req);
最近有人向我反映生成的apk无法正常运行。在此进行解释:
demo源码生成的apk不可正常运行的原因是:在微信开放平台添加应用时,包名,应用签名,app_id是绑定的。你们签名的apk不起作用,demo代码仅供参考交流。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'

我要回帖

更多关于 支付宝红包口令分享 的文章

 

随机推荐