根据官方给的Demo, 一步一步集成了Android项目;
另一个支付方式一次成功, 测试支付/取消支付/断网支付等都没有问题;
到了测试微信支付, 怎么就各种问题, 你们倒是更新文档/Demo(AS), 添加FAQ啊:
按照官方文挡, 不能成功回调, 最后我参照支付方式一, 改成异步执行, OK
final Runnable wxPayRunnable = new Runnable() {
@Override
public void run() {
try {
final JSONObject orderInfo = payData.getJSONObject("data");
Log.d("payInfo", "<===微信支付信息===>\n" + orderInfo.toString());
IWXAPI wxApi = WXAPIFactory.createWXAPI(PayActivity.this, null);
wxApi.registerApp(AppConfig.APP_ID);
// 调起支付
PayReq req = new PayReq();
req.appId = AppConfig.APP_ID;
req.partnerId = orderInfo.getString("partnerId");
req.prepayId = orderInfo.getString("prepayId");
req.nonceStr = orderInfo.getString("nonceStr");
req.timeStamp = orderInfo.getString("timeStamp");
req.packageValue = orderInfo.getString("packageValue");
req.sign = orderInfo.getString("sign");
// 发送支付数据
boolean isShow = wxApi.sendReq(req);
Log.d("payInfo", "<===正常调起支付===>\n" + isShow);
} catch (JSONException pE) {
pE.printStackTrace();
ToastUtil.showShortToast(PayActivity.this, "微信支付数据异常");
}
}
};
// 必须异步调用
Thread wxPayThread = new Thread(wxPayRunnable);
wxPayThread.start();支付回调页面显示问题, 包括页面闪动, 所以我不得不加上以下主题
<!-- 微信支付回调 -->
<activity
android:name=".wxapi.WXPayEntryActivity"
android:exported="true"
android:launchMode="singleTop"
android:theme="@android:style/Theme.NoDisplay" />所有都集成好了, appId和签名也校验了许多遍, 然而还是调不起支付面板, 立马回调errCode=-1.
你们官方就一句 [ 可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。], 我们还能怎么排查原因?!
最后实在是没招, 换了一台手机测试, 重新登录微信, 又可以了, errCode=0/-2 都能正常回调, 换回上个手机, 也正常回调, 难道我的微信长时间没有重新登陆过, 你们的SDK就拿不到授权, 调不起来支付面板?! 真的好奇怪啊...... 硬件设备: HUAWEI P10, VTR-AL00 4G+64G, EMUI 9.0.1.179, Android 9
软件微信: Version 7.0.4, 上次输密码登录至少3个月前, 甚至更久
我的微信, 退出重登, 成功了, 这是什么情况?
难道因为我的微信超过半年没有退出过?
授权过期了?!
请检查参数和签名