今天想跟大家分享一下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); }
/** *支付结果回调 *@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文件中需要注册: |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|