基本概念
包名值得是你APP的包,在创建工程时候设置的,需要在微信支付平台上面设置。
签名指的是你生成APK时候所用的签名文件的md5,去掉:全部小写,需要在微信支付平台上面设置。
调试阶段,签名文件可以使用调试用的tore,签名可以直接在eclipse上面查看,或者用工具查看 ,安装打开输入包名即可查看。
发布的时候一定需要在微信支付平台上面设置成发布用的签名值。
官方的Demo里面的内容并不是全是必须的,甚至只需要有就够了,也不用配置。
的配置和只是为了能够得到支付回调,可以先不用去管,先调试能不能发起支付。
把拷贝到你项目的libs下,并添加jar引用。
代码里发起支付请求:
IWXAPI api = teWXAPI(this, YAPPID);sterApp(YAPPID); // 注册APPID,这句很重要,不然不会发起调用PayReq req = new PayReq();d = d;// 也就是YAPPID,如果二者不一致的话是没法发起支付的。nerId = tring("partnerid");ayId = tring("prepayid");eStr = tring("noncestr");Stamp = tring("timestamp");ageValue = tring("package"); = tring("sign");//ata = "";// "app data"; // optionalboolean r = Req(req);if(!r) { Text(this,"打开微信支付失败!",TH_SHORT)();}
上面的代码中相关的预下单ID、签名、时间戳等都是由服务端返回了,服务端在生成这些值的时候需要注意二次签名的问题。
正常的话微信客户端就会打开支付页面了,那么就可以再着手回调的事情了。
把拷贝到你项目包下的wxapi文件夹中,比如你的包名是,那么就放到i下面。
设置,让其支持回调:
/>
不需要布局文件的,或者可以根据你的需要进行布局。
为了调试方便,把中onResp的代码改为:
@Overridepublic void onResp(BaseResp resp) { Log.d("onPayFinish", "onPayFinish, errCode = " + ode); if(ode==0){ Text(this,"支付成功!",TH_SHORT)(); }else if(ode==-1){ Text(this,"支付失败!",TH_SHORT)(); }else if(ode==-2){ Text(this,"取消支付!",TH_SHORT)(); }}
不管能不能支付成功,如果onResp的代码能够被自动执行,那么说明你的里的配置是对了。
如果你对你的各项参数都很有把稳了(比如你们iOS组的都能支付了,就你Android的还在坑了),那么看一下sterApp(YAPPID);有没有,没错我就坑死在这里了,这种情况下第一次(很偶尔)的能够打开支付界面一下,后面都不行了。
总结
微信为啥不能给点详细的错误代码或者说明之类,就给一个-1,天知道是什么意思,真让人不爽。以上就是Android开发微信APP支付功能要点的全部内容,希望本文的内容对大家开发Android能有所帮助。