您的位置:首页 > 移动开发 > 微信开发

Android 微信支付快速集成案例及有效解决返回值-1

2017-02-25 11:10 134 查看
商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID。由于需要保证支付安全,需要在开放平台绑定商户应用包名和应用签名,设置好后才能正常发起支付。本文讲解Android微信支付快速集成案例及有效解决返回值-1。

下面我们参考微信官方APP端开发步骤说明,一步一步集成微信支付功能:

1、商户APP工程中引入微信JAR包

,该包可以从官方微信支付demo中获得。 

2、编写调起微信支付的代码 

官方提供的代码如下: 


 

注意:
final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);
1
1

请将官方提供的上面这段代码改为如下代码:
final IWXAPI msgApi = WXAPIFactory.createWXAPI(this,"wxd930ea5d5a258f4f", false);
1
1


 

3、支付结果回调 

“参照微信SDK Sample,在net.sourceforge.simcpux.wxapi包路径中实现WXPayEntryActivity类(包名或类名不一致会造成无法回调)”,比如我的包名为com.cn.cwvs.fruit:

 

这里提供WXPayEntryActivity参考代码(请结合官方支付demo使用):
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler{

private IWXAPI api;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pay_result);
api = WXAPIFactory.createWXAPI(this, Constant.WEIXIN_APPID);
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) {

int code = resp.errCode;

switch (code){
case 0://支付成功后的界面
break;
case -1:
ToastUtils.showToast(getApplicationContext(), "签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、您的微信账号异常等。");
break;
case -2://用户取消支付后的界面
break;
}
finish();
//微信支付后续操作,失败,成功,取消
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

4、在配置文件中配置这个回调的activity 



至此,微信支付Android端集成已经完成。 

需要注意的是,如果errorCode总是为 -1,请尝试通过下面方法解决: 

1、用提交的签名的keystore文件打包 

2、清理微信的缓存 

3、请根据上文的注意点,修改官方提供的代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: