前言,作为一名有经验的开发人员,竟然被集成微信支付这么一个小小的功能坑的吐血。文档不详细不够规范,Demo可以说是小学生写的吗,而且几年未更新了。。。虽然代码量很少,但是坑实在是多。
一.客户端的坑
在调用IWXAPI对象的registerApp()之前,我们需要先创建IWXAPI对象,那么这个对象该如何创建呢?
Demo是这样写的:
IWXAPI api = WXAPIFactory.createWXAPI(this, "your app id");
文档是这么写的:
IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);
一.客户端的坑
在调用IWXAPI对象的registerApp()之前,我们需要先创建IWXAPI对象,那么这个对象该如何创建呢?
Demo是这样写的:
IWXAPI api = WXAPIFactory.createWXAPI(this, "your app id");
文档是这么写的:
IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);
网上搜到还有一种写法是这样的:
IWXAPI api = WXAPIFactory.createWXAPI(this, "your app id", false);
经过实际测试后发现,其实这三种方式都可以。只是微信没有写清楚......
关于错误码error code。
当客户端无法调起微信窗口时,会有错误码给出。然而,微信就只给了一个错误码,-1。errCode=-1,解释是,可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。尼玛,难道就不能细分下错误码吗。。。无法成功调起微信,有可能是客户端的问题,也有可能是服务端的问题,这给联调带来了很多麻烦。
二.服务端的坑
// TODO 未完,年后来填坑。