记录下关于安卓项目集成微信支付的过程

第一次做APP集成微信支付的功能,由于没做过遇到好多问题,这里总结下。


1.准备工作,这部分是真正耗时的部分(如果你只负责代码部分请忽略



第一步,你要申请个微信开放平台的账号,登录之后进入账号中心尽快进行开发者资质认证(如果资料没问题1-2天就可以完成此项工作)。

第二步,点击管理中心创建应用,也就是你需要集成支付功能的app,如下。(在此之前你需要对自己的应用签名,因为后面创建应用需要你的签名信息偷笑。直接使用官方给的工具即可签名工具下载地址https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk,)


然后完善应用的信息,如下,你需要准备两种应用水印,格式如图


第三步,当你完成应用的创建,你以为就可以集成代码,一帆风顺了嘛,no!首先是微信官方对你填写应用信息的审核,接下来进入管理中心,找到你创建的应用还需要申请开通APP支付功能抓狂


有经验的小伙伴,会在此之前准备好各种资料包括甲方公司的各种资质证明,入驻商户相关经营执照,app的一些截图,说明等等,哎。完成下面的4步,并且等待审核完成(又是该死的审核),才可以集成代码,



2.代码集成(到这里说明你申请的支付功能已经审核通过,微信官网集成步骤很详细,老老实实按步骤来,都没问题。我只写下自己关注的地方)

  

    1.集成微信sdk后,刚开始看官方文档、看demo的时候,有种这是哪,我在哪,我该干啥完全一懵B的状态,什么统一下单接口,什么调起支付接口该什么时候用。fuck,最后发现APP端屁都不用干,只需要简单完成下面的步骤就行。


    a.demo有个wxapi的包,把它cpoy到你的项目里,包括里面的java类及相关布局文件。注意所有名字都不要变。


     b.在你APP需要调起支付的界面,注册微信。

   // IWXAPI 是第三方app和微信通信的openapi接口
  private IWXAPI api;

   // 通过WXAPIFactory工厂,获取IWXAPI的实例
  api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, false);
  api.registerApp(Constants.APP_ID);

   c.把选好的商品信息发给后台,后台的兄弟拿到这些信息,调用 统一下单接口进行签名,并把签名数据信息返给你,具体如下。

 if(common.getCode().equals("200")){

 weixin =common.getWeixin();

 PayReq request = new PayReq();

 request.appId = weixin.getAppid();//应用ID

 request.partnerId = weixin.getPartnerid();//商户号

 request.packageValue = "Sign=WXPay";//扩展字段


 request.prepayId=weixin.getPrepayid();//预支付交易会话ID

 request.nonceStr= weixin.getNoncestr();//随机字符串

 request.timeStamp= weixin.getTimestamp();//时间戳

 request.sign= weixin.getSign();//签名

 api.sendReq(request);//调起微信支付界面

}


接下来就是进入微信的支付界面支付。OK,完成了,就这么简单。什么?完成支付后返回空白界面?

还记的wxapi包里

WXPayEntryActivity
这个类吗,

在这个函数处理下你想返回的界面,下面是我写的代码。OK,完事!什么?太乱,没看懂,就这样吧,不会写了。

@Override
   public void onResp(BaseResp resp) {
      Log.d(TAG, "onPayFinish, errCode = " + resp.errCode);
//    Toast.makeText(WXPayEntryActivity.this, resp.errCode, Toast.LENGTH_SHORT).show();
//    if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
//       AlertDialog.Builder builder = new AlertDialog.Builder(this);
//       builder.setTitle("提示");
//       builder.setMessage("微信支付结果" +String.valueOf(resp.errCode));
//       builder.show();
//    }
      if (resp.errCode!=100) {
            clearyhqcar();
            clearcar();
         Intent intent=new Intent(WXPayEntryActivity.this,ShopDetailActivity.class);
//       intent.putExtra("PAYCODE",resp.errCode);
         startActivity(intent);
         finish();
      }
   }




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值