Android中微信支付申请、集成、出包等整个过程

来源:互联网 发布:登陆淘宝网店 编辑:程序博客网 时间:2024/04/28 18:11

1.首先,做微信支付,一般情况下公司会有人在微信平台注册公司的账号,然后申请IOS/Android等应用,这个时候需要Android工程师需要提供应用签名和包名这两个东西。

这里写图片描述

2.接下来就是怎么获取应用签名:获取应用签名

备注:其实下图中MD5值就是应用签名的值(去掉冒号),也可以通过获取签名工具获取该值;记得保存好keyStore文件,最后集成完微信支付,Apk必须出包才能调起微信支付。

3.这个时候最好到微信开发平台下载一个Demo研究一下,当然很多人都会发现Demo第一次是可以调起微信支付,之后支付就老返回-1。接下来我说一下集成微信支付需要注意的一些问题。

1).首先一定要注册微信,而且要判断手机时候安装微信,如果没有安装微信,要提醒用户,否则调起支付的时候会出现闪退的状况。
    api = WXAPIFactory.createWXAPI(SaveSuccessActivity.this, mAppId, false);                api.registerApp(mAppId);                wxAppInstalledAndSupported = DataUtil                        .isWXAppInstalledAndSupported(SaveSuccessActivity.this, api);

2).一定要确保这六个参数是正确,然后调用sendReq()方法调起微信支付。所以最好这个七个参数由后台统一返回,这样不仅确保账户的安全性,更加确保检查7个参数是否正确。

if (api != null) {            if (wxAppInstalledAndSupported) {                PayReq req = new PayReq();                req.appId = mAppId;  //AppId                req.partnerId = mMchId;  //商户id                req.prepayId = mPrepayId;  //预定id                req.packageValue = ConstantsMember.PACKAGE; // Sign=WXPay                req.nonceStr = mNoncestr;  //随机字符串                req.timeStamp = mTimeStamp;  //时间戳                req.sign = mSign;  //二次签名                api.sendReq(req);            }          }
3).当然有些公司后台会偷懒,只返回预定id(prepayId )给你。这个时候,就需要你自己获取随机字符串、时间戳以及通过二次签名(这个参数是通过其他的六个参数获取的),具体的获取方法可以自己百度一下。
4).二次签名是最容易出错,还有req.packageValue = Sign=WXPay; // Sign=WXPay,一定要注意大小写。微信平台上面有专门检验二次签名是否正确的工具。

微信提供相关接口在线签名验证工具:点击进入。

4.集成微信支付后,要使微信支付调起来,一定打包Apk,用之前生成的keyStroe文件打包。打包的应用别名就是你填写信息的别名,这个也要注意。

0 1