Android微信支付开发源代码_微信支付V3接口Demo下载
最近公司的项目需要使用微信支付、导致我不得不去研究微信支付、这里跟大家分享一个可以正常支付的demo、但是demo需要开发者配置自己的参数才可以运行起来、首先在Constants.java中设置相关参数、具体请查看该文件注释、同时根据注释修改androidmanifest.xml文件
要保证: 包名和开放平台一致、签名和开放平台一致、并且再公众平台做设置、详情请阅读: http://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_5 注意:此条仅仅适用于android、ios不受签名文件限制
要保证回调类WXPayEntryActivity.java文件必须位于包名的wxapi目录下、否则会导致无法回调的情况、注意:此条仅仅适用于android,ios有固定格式、请参考ios demo、微信支付一共可分为3个步骤、App支付生成预支付订单、生成App微信支付参数、调用微信App支付
1、App支付生成预支付订单
protected Map<String,String> doInBackground(Void... params) { String url = String.format("https://api.mch.weixin.qq.com/pay/unifiedorder"); String entity = genProductArgs(); Log.e("orion",entity); byte[] buf = Util.httpPost(url, entity); String content = new String(buf); Log.e("orion", content); Map<String,String> xml=decodeXml(content); return xml; }
2、生成App微信支付参数
private void genPayReq() { req.appId = Constants.APP_ID; req.partnerId = Constants.MCH_ID; req.prepayId = resultunifiedorder.get("prepay_id"); req.packageValue = "Sign=WXPay"; req.nonceStr = genNonceStr(); req.timeStamp = String.valueOf(genTimeStamp()); List<NameValuePair> signParams = new LinkedList<NameValuePair>(); signParams.add(new BasicNameValuePair("appid", req.appId)); signParams.add(new BasicNameValuePair("noncestr", req.nonceStr)); signParams.add(new BasicNameValuePair("package", req.packageValue)); signParams.add(new BasicNameValuePair("partnerid", req.partnerId)); signParams.add(new BasicNameValuePair("prepayid", req.prepayId)); signParams.add(new BasicNameValuePair("timestamp", req.timeStamp)); req.sign = genAppSign(signParams); sb.append("sign " req.sign " "); show.setText(sb.toString()); Log.e("orion", signParams.toString()); }
3、调用微信App支付
private void sendPayReq() { msgApi.registerApp(Constants.APP_ID); msgApi.sendReq(req); }
另外再说明一下、很多情况下支付结果可能会返回-1、这种情况请仔细检查签名和包名、另外还有一个要说明的问题是、一个签名只能对应一个手机
意思是就是相同的签名在一部手机上只有一个App(一个包名、亲测的)、大家测试的时候注意一下、如果发现代码签名正常、还是返回-1、那么就换一部手机试试
最后给贴上Demo的源代码、希望对大家有用、有兴趣的哥们可以下载看看
源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1kTgW5mv 密码: yjqu
上一篇: Html5点击按钮弹出罩层窗口_jQuery弹出层登录和注册
下一篇: C语言 输出二进制数