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中微信支付申请集成出包等整个过程的主要内容,如果未能解决你的问题,请参考以下文章

Android中微信支付的流程(从请求统一支付接口到真正调起微信支付)

终结《android开发集成微信支付》

终结《android开发集成微信支付》

Android中微信支付接入的完整教程来了

Android开发支付集成——微信集成

如何用微信app