android自动微信支付平台,Android微信APP支付开发要点

基本概念

包名值得是你APP的包,在创建工程时候设置的,需要在微信支付平台上面设置。

签名指的是你生成APK时候所用的签名文件的md5,去掉:全部小写,需要在微信支付平台上面设置。

调试阶段,签名文件可以使用调试用的debug.keystore,签名可以直接在eclipse上面查看,或者用工具查看,可以去这里下载 http://7xl09t.com1.z0.glb.clo... ,安装打开输入包名即可查看。发布的时候一定需要在微信支付平台上面设置成发布用的签名值。

官方的Demo里面的内容并不是全是必须的,甚至只需要有libammsdk.jar就够了,AndroidManifest.xml也不用配置。

AndroidManifest.xml的配置和WXPayEntryActivity.java只是为了能够得到支付回调,可以先不用去管,先调试能不能发起支付。

把libammsdk.jar拷贝到你项目的libs下,并添加jar引用。

代码里发起支付请求:

IWXAPI api = WXAPIFactory.createWXAPI(this, Values.WXPAYAPPID);

api.registerApp(Values.WXPAYAPPID); // 注册APPID,这句很重要,不然不会发起调用

PayReq req = new PayReq();

req.appId = wxPay.appid;// 也就是Values.WXPAYAPPID,如果二者不一致的话是没法发起支付的。

req.partnerId = json.getString("partnerid");

req.prepayId = json.getString("prepayid");

req.nonceStr = json.getString("noncestr");

req.timeStamp = json.getString("timestamp");

req.packageValue = json.getString("package");

req.sign = json.getString("sign");

//req.extData = "";// "app data"; // optional

boolean r = api.sendReq(req);

if(!r) {

Toast.makeText(this,"打开微信支付失败!",Toast.LENGTH_SHORT).show();

}

上面的代码中相关的预下单ID、签名、时间戳等都是由服务端返回了,服务端在生成这些值的时候需要注意二次签名的问题。

正常的话微信客户端就会打开支付页面了,那么就可以再着手回调的事情了。

把WXPayEntryActivity.java拷贝到你项目包下的wxapi文件夹中,比如你的包名是com.xx.shop,那么就放到com.xx.shop.wxapi下面。

设置AndroidManifest.xml,让其支持回调:

android:name=".wxapi.WXPayEntryActivity"

android:screenOrientation="portrait" android:exported="true"

android:launchMode="singleTop">

/>

WXPayEntryActivity.java不需要布局文件的,或者可以根据你的需要进行布局。

为了调试方便,把WXPayEntryActivity.java中onResp的代码改为:

@Override

public void onResp(BaseResp resp) {

Log.d("onPayFinish", "onPayFinish, errCode = " + resp.errCode);

if(resp.errCode==0){

Toast.makeText(this,"支付成功!",Toast.LENGTH_SHORT).show();

}else if(resp.errCode==-1){

Toast.makeText(this,"支付失败!",Toast.LENGTH_SHORT).show();

}else if(resp.errCode==-2){

Toast.makeText(this,"取消支付!",Toast.LENGTH_SHORT).show();

}

}

不管能不能支付成功,如果onResp的代码能够被自动执行,那么说明你的AndroidManifest.xml里的配置是对了。

如果你对你的各项参数都很有把稳了(比如你们iOS组的都能支付了,就你Android的还在坑了),那么看一api.registerApp(Values.WXPAYAPPID);有没有,没错我就坑死在这里了,这种情况下第一次(很偶尔)的能够打开支付界面一下,后面都不行了。

微信为啥不能给点详细的错误代码或者说明之类,就给一个-1,天知道是什么意思,真让人不爽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值