最新版微信支付和支付宝支付集成(未完待续)
最近公司新项目要集成微信支付,支付宝支付,搜了一下,网上旧版本的集成比较多,所以就按照官方最新文档进行集成,记录下集成过程中遇到的问题,方便以后查看。
1.微信支付集成
首先要了解微信 支付的业务流程,具体可以看微信支付业务流程,后台刚开始不知道统一下单接口返回的sing要再进行一次签名后才返回实体bean,我每次都是拿到第一次的签名sing去调支付,怎么调都调不起来,然后就是报-1的错误,排除了appkey错误,后来跟后台对接的时候才知道他把第一次请求下来的支付信息直接返回了。。。
WXPayEntryActivity这个类中不想要布局的话可以把setContentView(R.layout.pay_result);这句代码删除,然后在onResp这个方法中我的更改如下:
7.无论成功失败都会调用WXPayEntryActivity这个类的onResp方法,在里面进行逻辑判断
/**
* 微信支付结果
*/
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
private IWXAPI api;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
api = WXAPIFactory.createWXAPI(this, Api.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) {
}
@Override
public void onResp(BaseResp resp) {
KLog.e(resp.errCode + resp.errStr + "===toString===" + resp.toString());
if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
if (resp.errCode == 0) {
Toast.makeText(getApplicationContext(), "支付成功", Toast.LENGTH_SHORT).show();
EventBus.getDefault().post(new MessageEvent.PayEvent(0));//发送通知关闭确认订单界面
//跳转到待发货界面
Intent intent = new Intent(WXPayEntryActivity.this, MyOrderActivity.class);
intent.putExtra("type", 2);
startActivity(intent);
} else if (resp.errCode == -1) {
EventBus.getDefault().post(new MessageEvent.PayEvent(1));
Toast.makeText(getApplicationContext(), "支付失败", Toast.LENGTH_SHORT).show();
} else if (resp.errCode == -2) {
EventBus.getDefault().post(new MessageEvent.PayEvent(2));
Toast.makeText(getApplicationContext(), "支付取消", Toast.LENGTH_SHORT).show();
}
}
finish();
}
}
2.支付宝支付集成
后续更新
标签:
必须
小草
专注人工智能、前沿科技领域报道,致力于为读者带来最新、最深度的科技资讯。