支付集成步骤和流程
1.生成订单(可以在客户端生成,也可以在服务器端生成)
2.调用支付宝支付接口,发送订单
3.处理支付宝返回的支付结果
订单的签名,建议放在服务器,这样更加安全。
支付宝在上一个页面 1生成订单,AlipayActivity这个类里面就可以实现 2调用接口,发送订单 和 3处理支付的结果;
而微信支付,可以在WxPayActivity先判断手机是否安装微信和是否支持微信支付,判断之后 2调用接口,发送订单 ,
在WXPayEntryActivity extends Activity implements IWXAPIEventHandler里面微信终端注册,再专门做 3处理支付的结果;
微信分开写可以更加清晰明了。必须在wxapi文件里下面。
微信比支付宝麻烦一些、
常见错误也需要注意:
微信支付的demo只有第一次调用成功,后面的调用回调都是返回错误码-1;
可以弹出微信支付的界面,但是支付之后没有进入回调的Activity:WXPayEntryActivity;
微信支付的回调Activity要求必须是在:包名 + wxapi里面,支付宝没有要求。
微信支付,需要注意在官网上面备注签名,上线前保持一致,或者直接使用正式版本的签名;
这里应用跟应用签名和包名挂钩,也就是说一个移动应用对应一个APPID,表明了配置参数的不可公用性。
另外要注意调试的时候签名问题,可以先设置为debug签名,等调试成功换成正式签名。一般调试问题就是签名问题。
签名工具下载地址:
https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk
在微信支付前,需要先判断是否安装微信软件,它没有h5支付的页面
if (!api.isWXAppInstalled()) {
Toast.makeText(WxPayActivity.this, "没有安装微信", Toast.LENGTH_SHORT).show();
finish();
return;
}
if (!api.isWXAppSupportAPI()) {
Toast.makeText(WxPayActivity.this, "当前版本不支持支付功能", Toast.LENGTH_SHORT).show();
return;
}
PayReq req = new PayReq(); --- 2.调用微信支付接口,发送订单、