商户在微信开放平台申请开发应用后,微信开放平台会生成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、请根据上文的注意点,修改官方提供的代码。

更多相关文章

  1. Android应用开发笔记(4):再探Android多应用间数据共享机制,自定义C
  2. Android(安卓)换肤方案(2种)
  3. 让你的代码量减少3倍!使用kotlin开发Android(二) --秘笈!扩展函数
  4. Android中AIDL的使用(一) 之 AIDL经典示例
  5. 如何确定Android中刚修改后的c/c++是否编译成功
  6. 关于Android(安卓)EditText图文混排的总结
  7. Gradle Kotlin DSL , 你知道它吗?
  8. Android(安卓)App支付系列(一):微信支付接入详细指南(附官方支付dem
  9. 第一行代码笔记3

随机推荐

  1. Android 动态添加View 并设置id
  2. Android SDK 有bug
  3. android 的ListView中,判断其已滚动到最顶
  4. Android安全论文汇集
  5. 动态加载Dex的原理
  6. MT6573默认锁屏界面修改
  7. Android Studio安装Genymotion插件
  8. [Android]《Android艺术开发探索》第一章
  9. Android 不同API版本 向后兼容
  10. android典型代码系列(二十八)------通话