大哥教程整理的这篇文章主要介绍了微信APP支付功能的开发要点。老大哥教程觉得挺好的。现在我就分享给大家,给大家一个参考。
基本概念
包名应该是你APP的包名,在创建项目时设置。需要在微信支付平台上进行设置。
签名是指您生成APK时使用的签名文件的md5。去掉:全部小写,需要在微信支付平台上设置。
在调试阶段,可以使用签名文件进行调试。签名可以直接在上面查看,也可以用工具查看。安装完成后打开输入包名即可查看。
发布时,必须设置微信支付平台发布的签名值。
并不是官方Demo中的所有内容都是必须的,甚至.jar就够了,.xml不需要配置。
.xml配置和.java只是为了获取支付回调,暂时不用管。首先调试是否可以发起支付。
将 .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"; // optional boolean r = api.sendReq(req); if(!r) { Toast.makeText(this,"打开微信支付失败!",Toast.LENGTH_SHORT).show(); }
上述代码中相关的预购ID、签名、时间戳等都是服务器返回的。服务器在生成这些值时需要注意二次签名问题。
正常情况下,微信客户端会打开支付页面,然后就可以开始回调了。
将 .java 复制到您的项目包下的文件夹中。例如,如果您的包名为 com.xx.shop,则将其放在 com.xx.shop 下。
设置 .xml 以支持回调:
.java不需要布局文件,也可以根据自己的需要进行布局。
为了方便调试,将.java中的代码修改为:
@Override public 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(); } }
不管支付能否成功,如果代码能自动执行,就说明你的.xml中的配置是正确的。
如果你对你的参数非常确定(例如,你的iOS团队可以支付,但你的仍然卡住),那么看看api。(.);如果有的话,是的,我会的。陷阱就在这里。在这种情况下,我第一次可以打开支付接口(非常偶尔),但又不行了。
总结
为什么微信不能给出详细的错误代码或解释?它只给出-1。天知道这意味着什么。真的很烦人。以上就是开发微信APP支付功能的全部要点。希望本文的内容能够对大家的发展有所帮助。
老板总结
以上就是大师教程为您收集整理的微信APP支付功能开发要点总结。希望文章能够帮助大家解决微信APP支付功能开发要点总结中遇到的程序开发问题。
如果您觉得大哥教程网站的内容不错,欢迎您将大哥教程推荐给您的程序员朋友。