首页 存档 技术 查看内容

Android开发之微信支付,支付宝支付

2018-3-30 13:00 |来自: 互联网 304 0

摘要: 今天想跟大家分享一下Android开发中的支付功能,基本上所有的商城类项目都会用到微信支付,支付宝支付,相信很多初学者在开发的过程中也曾遇到跟我一样的情况:看完开发文档之后,做出来的功能怎么调用不起来,经过 ...

今天想跟大家分享一下Android开发中的支付功能,基本上所有的商城类项目都会用到微信支付,支付宝支付,相信很多初学者在开发的过程中也曾遇到跟我一样的情况:看完开发文档之后,做出来的功能怎么调用不起来,经过后来的反复调试才成功的完成支付功能,下面我就简单的来说说微信支付和支付宝支付的注意事项。

项目的下载链接我也放在结尾,有需要的朋友可以下载看看,欢迎大家提出意见。


微信支付注意事项:

1.创建项目的时候填写的应用包名,相信这个没有开发者会出错。

2.创建项目的时候填写的签名文件的签名串,填写的是签名文件的MD5值,值得注意的是,微信要求去掉MD5值当中的冒号,并且改大写为小写,当初我就是在这个上面犯了错,当时的微信文档也没有仔细说明。、

3.完成功能测试的时候,需要使用签名文件签名后的APK进行测试,否则会调用不起来。(不使用签名文件签名,有可能能调起第一次支付,后面就调用不起来了)

4.检查核对APP_ID是否正确,在项目过程中有多个地方需要用到APP_ID,AndroidManifest文件中也需要使用到。


支付宝支付注意事项:

1.其实支付宝支付挺简单的,没有微信那么复杂,只要检查key以及公钥和私钥的正确性就行了,然后按照demo来一步步集成就能实现功能了。


下面不多说废话了,上代码说明:‘’

xml文件就两个按钮,就不贴出来了,直接上Java代码:

微信支付代码:

//微信支付必须参数

StringappId="wxd930ea5d5a258f4f";

StringpartnerId="";

StringprepayId="";

StringpackageValue="";

StringnonceStr="";

StringtimeStamp="";

Stringsign="";


这是微信支付需要的参数,少一个或者有一个值为空都不行,参数是有了,下面就是发起微信支付了,这里我自己写了工具类WXPayHelper用来封装微信支付,这样方便在多个地方调用微信支付功能。

/**

*发起微信支付

*/

privatevoidtoWxPay(){

PayConfigpayConfig=newPayConfig();

payConfig.setAppid(appId);

payConfig.setPartnerid(partnerId);

payConfig.setNoncestr(nonceStr);

payConfig.setPrepayid(prepayId);

payConfig.setPack(packageValue);

payConfig.setPaySign(sign);

payConfig.setTimestamp(timeStamp);

WXPayHelperpayHelper=newWXPayHelper(this);

payHelper.doPay(payConfig);

}


下面是WXPayHelper工具类中的操作:

/**

*使用后台返回的支付参数支付

*

*@parampayConfig

*/

publicvoiddoPay(PayConfigpayConfig){

req.appId=payConfig.getAppid();

req.partnerId=payConfig.getPartnerid();

req.prepayId=payConfig.getPrepayid();

req.packageValue=payConfig.getPack();

req.nonceStr=payConfig.getNoncestr();

req.timeStamp=payConfig.getTimestamp();

req.sign=payConfig.getPaySign();

PayReqrequest=newPayReq();

request.appId=req.appId;

request.partnerId=req.partnerId;

request.prepayId=req.prepayId;

request.packageValue=req.packageValue;

request.nonceStr=req.nonceStr;

request.timeStamp=req.timeStamp;

request.sign=req.sign;

//发起支付

msgApi.sendReq(req);

}


支付结果在回调页面WXPayEntryActivity展示:


/**

*支付结果回调

*@paramresp

*/

@Override

publicvoidonResp(BaseRespresp){

if(resp.getType()==ConstantsAPI.COMMAND_PAY_BY_WX){

intcode=resp.errCode;

switch(code){

case0://支付成功

break;

case-1://支付失败

break;

case-2://支付取消

break;

default:

break;

}

}

}


AndroidManifest文件中需要注册:


声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部