Android 微信支付快速集成案例及有效解决返回值-1
Posted Veer Han
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 微信支付快速集成案例及有效解决返回值-1相关的知识,希望对你有一定的参考价值。
商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID。由于需要保证支付安全,需要在开放平台绑定商户应用包名和应用签名,设置好后才能正常发起支付。本文讲解android微信支付快速集成案例及有效解决返回值-1。
下面我们参考微信官方APP端开发步骤说明,一步一步集成微信支付功能:
1、商户APP工程中引入微信JAR包,该包可以从官方微信支付demo中获得。
2、编写调起微信支付的代码
官方提供的代码如下:
注意:
final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);
请将官方提供的上面这段代码改为如下代码:
final IWXAPI msgApi = WXAPIFactory.createWXAPI(this,"wxd930ea5d5a258f4f", false);
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();
//微信支付后续操作,失败,成功,取消
4、在配置文件中配置这个回调的activity
至此,微信支付Android端集成已经完成。
需要注意的是,如果errorCode总是为 -1,请尝试通过下面方法解决:
1、用提交的签名的keystore文件打包
2、清理微信的缓存
3、请根据上文的注意点,修改官方提供的代码。
以上是关于Android 微信支付快速集成案例及有效解决返回值-1的主要内容,如果未能解决你的问题,请参考以下文章