Canra 2018-03-28 07:13 采纳率: 0%
浏览 4823
已采纳

Android 微信支付成功不走回调问题

如题,搞了好久,还是没找到问题,APP支付成功了,点击返回商家,然后没走回调,但是log显示:
进入微信支付的log
03-28 15:02:16.671 1067-1651/? W/InterceptionReason: reason:6)finally, intercept as usual, interception = false details<>
03-28 15:02:16.672 1067-1651/? I/ActivityManager: START u0 {flg=0x10000 cmp=com.tencent.mm/.plugin.base.stub.WXPayEntryActivity (has extras)} from uid 10187 on display 0
最后出现一条LOG
03-28 15:17:37.042 30014-30014/? W/MicroMsg.SDK.WXApiImplV10: context is not instanceof Activity or Service, disable WXStat
不太懂什么意思

这里是支付完成后的log
03-28 15:02:38.763 1067-1131/? W/InterceptionReason: reason:6)finally, intercept as usual, interception = false details<>
03-28 15:02:38.764 1067-1131/? I/ActivityManager: START u0 {flg=0x10000000 cmp=com.hc.house/.wxapi.WXPayEntryActivity (has extras)} from uid 10113 on display 0

但是就是没进入WXPayEntryActivity,奇怪的是取消支付就正常走业务了,

配置:
<!-- wxpay -->
android:name=".wxapi.WXPayEntryActivity"
android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />

项目结构:
图片说明

WXPayEntryActivity:

/支付成功回调页
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {

private IWXAPI api;

static int payType=-1;//标识

public static Handler Typehandler=new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        payType=msg.what; //获取支付类型
        Log.e("微信支付 ","当前获取类型 "+payType);
    }
};

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    api = WXAPIFactory.createWXAPI(WXPayEntryActivity.this,HmApplication.WXAPPID);
    api.handleIntent(getIntent(), WXPayEntryActivity.this);
}

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
    api.handleIntent(intent,WXPayEntryActivity.this);
}

@Override
public void onReq(BaseReq baseReq) {
    Log.e("微信支付 ","进入支付回调页onReq "+payType);
}

@Override
public void onResp(BaseResp baseResp) {
    Log.e("微信支付 ","进入支付回调页onResp "+payType +" 支付完成code "+baseResp.errCode);
    if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
        if(baseResp.errCode==-1){
            setPayResult("支付失败");
        }
        if(baseResp.errCode==0){
            setPayResult("支付完成");
        }
        if(baseResp.errCode==-2){
            setPayResult("取消支付");
        }
    }
}

private void setPayResult(String msg){
    HmToast.show(WXPayEntryActivity.this,msg,300);
    finish();
}

@Override
protected void onDestroy() {
    super.onDestroy();
}

}

  • 写回答

6条回答 默认 最新

  • lx2624 2018-03-28 08:39
    关注

    大多数的 applicationId就是项目的包名

    如果你用的IDE是Android Studio,applicationId是很容易修改的。假如项目的applicationId为com.test.project,那么wxapi.WXEntryActivity应该放在包名为com.test.project下。这个applicationId就是你申请微信支付的Android包名。两者保持一致就会成功

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)
  • ¥15 DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI[/untitled30_war_e
  • ¥15 使用deepspeed训练,发现想要训练的参数没有梯度
  • ¥15 寻找一块做为智能割草机的驱动板(标签-stm32|关键词-m3)
  • ¥15 信息管理系统的查找和排序
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),怎么用读取的电磁传感器信号表示小车所在的位置
  • ¥15 如何解决y_true和y_predict数据类型不匹配的问题(相关搜索:机器学习)
  • ¥15 PB中矩阵文本型数据的总计问题。
  • ¥15 MATLAB卫星二体模型仿真
  • ¥15 怎么让数码管亮的同时让led执行流水灯代码