Android开发微信APP支付功能的要点小结

Android开发微信APP支付功能的要点小结,第1张

概述基本概念包名值得是你APP的包,在创建工程时候设置的,需要在微信支付平台上面设置。

基本概念

包名值得是你APP的包,在创建工程时候设置的,需要在微信支付平台上面设置。

签名指的是你生成APK时候所用的签名文件的md5,去掉:全部小写,需要在微信支付平台上面设置。

调试阶段,签名文件可以使用调试用的deBUG.keystore,签名可以直接在eclipse上面查看,或者用工具查看 ,安装打开输入包名即可查看。

发布的时候一定需要在微信支付平台上面设置成发布用的签名值。

官方的Demo里面的内容并不是全是必须的,甚至只需要有libammsdk.jar就够了,AndroIDManifest.xml也不用配置。

AndroIDManifest.xml的配置和WXPayEntryActivity.java只是为了能够得到支付回调,可以先不用去管,先调试能不能发起支付。

把libammsdk.jar拷贝到你项目的libs下,并添加jar引用。

代码里发起支付请求:

IWXAPI API = WXAPIFactory.createWXAPI(this,Values.WXPAYAPPID);API.registerapp(Values.WXPAYAPPID); // 注册APPID,这句很重要,不然不会发起调用PayReq req = new PayReq();req.appID = wxPay.appID;// 也就是Values.WXPAYAPPID,如果二者不一致的话是没法发起支付的。req.partnerID = Json.getString("partnerID");req.prepayID = Json.getString("prepayID");req.nonceStr = Json.getString("noncestr");req.timeStamp = Json.getString("timestamp");req.packageValue = Json.getString("package");req.sign = Json.getString("sign");//req.extData = "";// "app data"; // optionalboolean r = API.sendReq(req);if(!r) { Toast.makeText(this,"打开微信支付失败!",Toast.LENGTH_SHORT).show();}

上面的代码中相关的预下单ID、签名、时间戳等都是由服务端返回了,服务端在生成这些值的时候需要注意二次签名的问题。

正常的话微信客户端就会打开支付页面了,那么就可以再着手回调的事情了。
把WXPayEntryActivity.java拷贝到你项目包下的wxAPI文件夹中,比如你的包名是com.xx.shop,那么就放到com.xx.shop.wxAPI下面。
设置AndroIDManifest.xml,让其支持回调:

<activity androID:name=".wxAPI.WXPayEntryActivity" androID:screenorIEntation="portrait" androID:exported="true" androID:launchMode="singletop"> <intent-filter>  <action androID:name="androID.intent.action.VIEW"/><category androID:name="androID.intent.category.DEFAulT"/><data androID:scheme="你的APPID"/> </intent-filter>/></activity>

WXPayEntryActivity.java不需要布局文件的,或者可以根据你的需要进行布局。

为了调试方便,把WXPayEntryActivity.java中onResp的代码改为:

@OverrIDepublic voID onResp(BaseResp resp) { Log.d("onPayFinish","onPayFinish,errCode = " + resp.errCode); if(resp.errCode==0){  Toast.makeText(this,"支付成功!",Toast.LENGTH_SHORT).show(); }else if(resp.errCode==-1){  Toast.makeText(this,"支付失败!",Toast.LENGTH_SHORT).show(); }else if(resp.errCode==-2){  Toast.makeText(this,"取消支付!",Toast.LENGTH_SHORT).show(); }}

不管能不能支付成功,如果onResp的代码能够被自动执行,那么说明你的AndroIDManifest.xml里的配置是对了。

如果你对你的各项参数都很有把稳了(比如你们iOS组的都能支付了,就你AndroID的还在坑了),那么看一下API.registerapp(Values.WXPAYAPPID);有没有,没错我就坑死在这里了,这种情况下第一次(很偶尔)的能够打开支付界面一下,后面都不行了。

总结

微信为啥不能给点详细的错误代码或者说明之类,就给一个-1,天知道是什么意思,真让人不爽。以上就是AndroID开发微信APP支付功能要点的全部内容,希望本文的内容对大家开发AndroID能有所帮助。

总结

以上是内存溢出为你收集整理的Android开发微信APP支付功能的要点小结全部内容,希望文章能够帮你解决Android开发微信APP支付功能的要点小结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1141324.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存