- 微信demo里面的测试接口用不了,没办法测了.想要跑起来,只要用他自带的签名就好了.不能用自己.
微信准备配置
现在开始配置微信相关的东西吧
在微信开发平台注册好相关应用,交了该交的钞票.等到
你就可以开始测试你的微信支付代码了
应用签名用的是keyston的md5值是小写无冒号的 查看方式有
keytool - list - keystore xxxx.keystore
或者使用微信提供的工具
需要注意的是你调试的签名和发版的是不一样的要注意修改保证你跑的时候二个配置是一样的
微信代码工程的配置
- 把demo里面的架包拿到你自己的工程
- WXPayEntryActivity 这个类也需要拿到你自己的工程里面
- 需要注意的是这个类必须放在你当前应用的包名.wxapi包下面
声明权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<activity
android:name=".wxapi.WXPayEntryActivity"
android:exported="true"
android:launchMode="singleTop"/>
之后你就可以调你们后台写的支付接口了.获得后台返回的数据后你需要
//注册到微信上面
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, true);
api.registerApp(Constants.APP_ID);
private void sendPayRequest() {
PayReq req = new PayReq();
req.appId = wechatPayInfo.getAppid();
req.partnerId = wechatPayInfo.getPartnerid();
req.prepayId = wechatPayInfo.getPrepayid();//预支付订单号
req.nonceStr = wechatPayInfo.getNoncestr();
req.timeStamp = wechatPayInfo.getTimestamp() + "";
req.packageValue = wechatPayInfo.getPackageValue();
req.sign = wechatPayInfo.getSign();
// 在支付之前,如果应用没有注册到微信,应该先调用//IWXMsg.registerApp将应用注册到微信
//3.调用微信支付sdk支付方法
api.sendReq(req);
}
wechatPayInfo 是demo里面的类,你需要的话可以完全也拷贝进来
需要注意的是
req.packageValue 对应的是服务器返回给你的package对的字段的数据.
这里很无语 package是java关键字真不懂为啥要用这个传,我这里是把他换成了packageValue在赋值的
这时候要是服务器没配置错,你基本可以调用起来了安装上面的做法
要是你发现掉用了之后一直是-1,检查下微信应用在微信开发平台的配置.要是没问题.接下来就是清除微信的数据缓存,或者卸载微信,重新装一个,你会神奇的发现ok了.