Android中微信支付申请集成出包等整个过程
Posted 志向远大
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中微信支付申请集成出包等整个过程相关的知识,希望对你有一定的参考价值。
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文件打包。打包的应用别名就是你填写信息的别名,这个也要注意。
以上是关于Android中微信支付申请集成出包等整个过程的主要内容,如果未能解决你的问题,请参考以下文章