
1、申请App_ID
2、填写包名3、
获取程序签名的md5值,
这三步只要你走对了就能调通,可是大家都不知道有时候我们打包的keystore和我们打包的keystore获取到的程序签名的md5是不一样的。
我们在申请的时候填的程序签名值是正式打包的,但我们在eclipse部署上去的却是用的我们默认的debugkeystore而这样导致的后果就是程序签名不一样,会一直调不通。
解决方法:
1、先注册应用:
private IWXAPI msgApi;
msgApi = WXAPIFactorycreateWXAPI(this, null);
msgApiregisterApp(ConstantsAPP_ID)。
2、然后拉取微信到授权登陆界面:
final SendAuthReq req = new SendAuthReq();
reqscope = "snsapi_userinfo";
reqstate = "wxdemo";
msgApisendReq(req);
3、在WXEntryActivity中的onResp(BaseResp resp)方法中获取code:
String code = ((SendAuthResp) resp)code;//需要转换一下才可以。
网站获取微信授权登录功能
首先需要弄明白的是你是在微信服务号里面开发的网站还是独立的网站应用,独立的网站获取微信登录功能需要满足以下条件:
1申请微信开发者账号。
2在微信开发者平台管理中心申请网站应用。
3申请通过后会获得该网站对应的appid以及appsecret,有了这两个参数就可以进行网站登录授权了。
微信三方登陆了接口有相关的文档的嘛。 1、先注册应用: private IWXAPI msgApi; msgApi = WXAPIFactorycreateWXAPI(this, null); msgApiregisterApp(ConstantsAPP_ID); 2、然后拉取微信到授权登陆界面 final SendAuthReq req = new SendAuthReq(); reqscope = "snsapi_userinfo"; reqstate = "wxdemo"; msgApisendReq(req); 3、在WXEntryActivity中的onResp(BaseResp resp)方法中获取code: String code = ((SendAuthResp) resp)code;//需要转换一下才可以 注意:要能回调到这个方法需要注册此activity: msgApihandleIntent(getIntent(), this);
解决方法:
1、先注册应用:
private IWXAPI msgApi;
msgApi = WXAPIFactorycreateWXAPI(this, null);
msgApiregisterApp(ConstantsAPP_ID)。
2、然后拉取微信到授权登陆界面:
final SendAuthReq req = new SendAuthReq();
reqscope = "snsapi_userinfo";
reqstate = "wxdemo";
msgApisendReq(req);
3、在WXEntryActivity中的onResp(BaseResp resp)方法中获取code:
String code = ((SendAuthResp) resp)code;//需要转换一下才可以。
网站获取微信授权登录功能
首先需要弄明白的是你是在微信服务号里面开发的网站还是独立的网站应用,独立的网站获取微信登录功能需要满足以下条件:
1申请微信开发者账号。
2在微信开发者平台管理中心申请网站应用。
3申请通过后会获得该网站对应的appid以及appsecret,有了这两个参数就可以进行网站登录授权了。
准备:
1,导入微信的libs包libammsdkjar;
2,测试时使用weixinDemo中的debug_keystore;
3,需要注意应用要通过审核,并且几个Key值正确,一下为微信支付Demo中的值:
1
2
3
4
5
6
7
8
9
10
//微信公众平台id;
private
String app_wx_appid=WxConstantsapp_wx_appid;
//微信开放平台和商户约定的密钥
private
String app_wx_secret_key="db426a9829e4b49a0dcac7b4162da6b6";
//微信公众平台商户模块和商户约定的密钥
private
String app_wx_parent_key="8934e7d15453e97507ef794cf7b0519d";
//微信公众平台商户模块和商户约定的支付密钥
private
String app_wx_pay_key="L8LrMqqeGRxST5reouB0K66CaYAWpqhAVsq7ggKkxHCOastWksvuX1uvmvQclxaHoYd3ElNBrNO2DHnnzgfVG9Qs473M3DTOZug5er46FhuGofumV8H2FVR9qkjSlC5K";
//
商家向财付通申请的商家id /
private
String app_tx_parent_key = "1900000109";
==========================================
根据微信支付Demo,微信支付分为三步:
第一步,获取accessToken,accessToken值第二步要用;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private
class
GetAccessTokenTask extends
AsyncTask<void,
void,=""
wxgetaccesstokenresult="">
{
@Override
protected
WxGetAccessTokenResult doInBackground(Void params) {
WxGetAccessTokenResult
result = getAccessToken();
return
result;
}
@Override
protected
void
onPostExecute(WxGetAccessTokenResult result) {
if
(resultlocalRetCode == WxLocalRetCodeERR_OK) {
GetPrepayIdTask
getPrepayId = new
GetPrepayIdTask();
getPrepayIdexecute(result);
}
}
}</void,>
解析服务器响应
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private
WxGetAccessTokenResult getAccessToken() {
WxGetAccessTokenResult
result = new
WxGetAccessTokenResult();
String
url = Stringformat(api_get_access_token,
"client_credential",
app_wx_appid,
app_wx_secret_key);
byte[]
buf = WeixinUtil>
ahtml传值跳转到bhtml,此段代码测试通过。
ajs:
function onResp(str) {//alert(str);
locationhref = "bhtmlresult=" + str;
}
bhtml
<body onload="showResult()">
bjs
function showResult() {var showval = UrlParmparm("result");
documentgetElementById("result")innerHTML = showval;
}
function back() {
locationhref = "ahtml";
}
UrlParm = function () { // url参数
var data, index;
(function init() {
data = [];
index = {};
var u = windowlocationsearchsubstr(1);
if (u != '') {
var parms = decodeURIComponent(u)split('&');
for (var i = 0, len = parmslength; i < len; i++) {
if (parms[i] != '') {
var p = parms[i]split("=");
if (plength == 1 || (plength == 2 && p[1] == '')) {// p | p=
datapush(['']);
index[p[0]] = datalength - 1;
} else if (typeof (p[0]) == 'undefined' || p[0] == '') { // =c | =
data[0] = [p[1]];
} else if (typeof (index[p[0]]) == 'undefined') { // c=aaa
datapush([p[1]]);
index[p[0]] = datalength - 1;
} else {// c=aaa
data[index[p[0]]]push(p[1]);
}
}
}
}
})();
return {
// 获得参数,类似requestgetParameter()
parm: function (o) { // o: 参数名或者参数次序
try {
return (typeof (o) == 'number' data[o][0] : data[index[o]][0]);
} catch (e) {
}
},
//获得参数组, 类似requestgetParameterValues()
parmValues: function (o) { // o: 参数名或者参数次序
try {
return (typeof (o) == 'number' data[o] : data[index[o]]);
} catch (e) { }
},
//是否含有parmName参数
hasParm: function (parmName) {
return typeof (parmName) == 'string' typeof (index[parmName]) != 'undefined' : false;
},
// 获得参数Map ,类似requestgetParameterMap()
parmMap: function () {
var map = {};
try {
for (var p in index) { map[p] = data[index[p]]; }
} catch (e) { }
return map;
}
}
}();
以上就是关于android调用微信api 登陆为什么没有执行onresp全部的内容,包括:android调用微信api 登陆为什么没有执行onresp、微信授权登陆时显示“获取code”怎么解决、微信登录 code怎么获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)