android 微信app支付遇到的坑
2016-11-21 10:12
477 查看
首先申请各种号,微信开发者资质等就不说了。然后就是申请一个开放平台的账号,申请app。通过之后别忘了申请app的支付能力
如图
然后拿到appid然后安卓端就可以开始开发啦
首先前两天是后台一直问我要授权code (这绝壁是个坑)我在源码上看了无数次也没找到怎么在支付之前拿到code和openId 然后查的各种资料都指向微信公众号。然后事实证明app支付确实不需要授权。。。如果以后再在这种时候有后台问你要code的话你就直接用刀砍他,不用客气的。
然后其实微信支付就很简单了
首先将官方的依赖包加上
如图,就是这个家伙
然后新建一个叫做 wxapi 的文件夹,一定要有个叫wxapi的文件夹,别的名字不行
然后这个文件夹里面应该有两个文件WXEntryActivity 和 WXPayEntryActivity
WXEntryActivity的作用就在于你要生成订单神马的
然后就是去后台接口生成你的订单。具体怎么生成订单就和后台商量去吧,无非就是要什么参数之类的
拿到该有的各种参数之后就是向微信提交订单调起微信支付啦
PayReq req = new PayReq();
//req.appId = "YOUR APPID";
req.appId
= json.getString("appid");
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
Toast.makeText(PayActivity.this, "正常调起支付", Toast.LENGTH_SHORT).show();
// 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信
api.sendReq(req);
就这样的话就可以正常调起支付啦,然后就是接收app的返回值,检测并反馈给咱们自己的服务器
这里也有坑,这是后台的坑 宝宝就在这里卡了两三天,就是后台的签名有问题。签名有问题的话是不能调起支付的。然后本宝宝就把微信官方给的demo源码看了3.4.5.6.7.8.我也不知道多少遍,反正就是看得恶心能背下来那种程度。。。好啦,吐槽完毕
如果签名也没问题的话呢,接下来咱们就应该在WXPayEntryActivity这个类里面进行处理啦
微信支付成功或者失败都会跳到这个 activity 中
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pay_result);
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID);
api.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
@Override
public void onReq(BaseReq req) {
}
这三个地方还是不变
具体处理应该在onResp()方法里面处理 如图
就这样,该回调服务器的回调服务器,该跳转的跳转,就完啦
还有需要注意的是必须签名打包之后才能调起支付哟,debug模式是弄不出来哒~
还有就是manifest里面需要注意的是这个
具体有什么用我也不知道,反正是之前各种查资料看到的,就加上去了。
嗯,就酱~
如图
然后拿到appid然后安卓端就可以开始开发啦
首先前两天是后台一直问我要授权code (这绝壁是个坑)我在源码上看了无数次也没找到怎么在支付之前拿到code和openId 然后查的各种资料都指向微信公众号。然后事实证明app支付确实不需要授权。。。如果以后再在这种时候有后台问你要code的话你就直接用刀砍他,不用客气的。
然后其实微信支付就很简单了
首先将官方的依赖包加上
如图,就是这个家伙
然后新建一个叫做 wxapi 的文件夹,一定要有个叫wxapi的文件夹,别的名字不行
然后这个文件夹里面应该有两个文件WXEntryActivity 和 WXPayEntryActivity
WXEntryActivity的作用就在于你要生成订单神马的
然后就是去后台接口生成你的订单。具体怎么生成订单就和后台商量去吧,无非就是要什么参数之类的
拿到该有的各种参数之后就是向微信提交订单调起微信支付啦
PayReq req = new PayReq();
//req.appId = "YOUR APPID";
req.appId
= json.getString("appid");
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
Toast.makeText(PayActivity.this, "正常调起支付", Toast.LENGTH_SHORT).show();
// 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信
api.sendReq(req);
就这样的话就可以正常调起支付啦,然后就是接收app的返回值,检测并反馈给咱们自己的服务器
这里也有坑,这是后台的坑 宝宝就在这里卡了两三天,就是后台的签名有问题。签名有问题的话是不能调起支付的。然后本宝宝就把微信官方给的demo源码看了3.4.5.6.7.8.我也不知道多少遍,反正就是看得恶心能背下来那种程度。。。好啦,吐槽完毕
如果签名也没问题的话呢,接下来咱们就应该在WXPayEntryActivity这个类里面进行处理啦
微信支付成功或者失败都会跳到这个 activity 中
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pay_result);
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID);
api.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
@Override
public void onReq(BaseReq req) {
}
这三个地方还是不变
具体处理应该在onResp()方法里面处理 如图
就这样,该回调服务器的回调服务器,该跳转的跳转,就完啦
还有需要注意的是必须签名打包之后才能调起支付哟,debug模式是弄不出来哒~
还有就是manifest里面需要注意的是这个
具体有什么用我也不知道,反正是之前各种查资料看到的,就加上去了。
嗯,就酱~
相关文章推荐
- Android开发微信APP支付功能的要点小结
- Android微信app支付集成步骤详解
- Android版-微信APP支付
- Android:微信和支付宝的APP支付接入
- 超详细的Android APP 集成 PayPal 境外支付 信用卡 借记卡 支付,支付宝 微信海外 境外支付
- Android平台,支付宝和微信app支付总结
- Android版-微信APP支付
- 关于android微信app支付
- C#+Hybrid App(Android)实现微信APP支付
- 微信android app支付坑点一览(我自己所碰到的)
- 关于微信APP支付遇到的坑
- 微信app支付android客户端以及.net服务端实现
- Android WebView 微信和支付宝H5调用本地app支付
- Android版-微信APP支付
- android应用集成微信app支付
- Android微信APP支付
- Android集成微信刷卡支付遇到的坑坑洼洼
- android 微信分享后显示白屏,需再点击返回才返回到app,该怎么解决啊,有人遇到过吗
- 实现微信App支付---关于Android实现App支付时的注意事项(或者叫坑)
- android 微信app支付的一些坑 resp.errCode=-1 微信不调用:WXPayEntryActivity