MUI移动开发中的微信支付分两部分,一部分在服务端,一部分在客户端
--------------------------- ------------------------------- ----服务端部分 ---------- ------------------------------- --------------------- : 我们客户端向服务器请求参数,服务器直接生成预支付单号并返回给我们,返回给客户端的参数应该有appid、partnerid、prepayid、package、noncestr、timestamp、sign共七个参数,可以到微信支付官网上验证sign值是否正确: https://pay.weixin.qq.com/wiki/tools/signverify/;
注意,这里的商户key是在 https://pay.weixin.qq.com/index.php/account/api_cert(这tm居然是商户平台里设置的!)里面设置密钥设置的值,这个值是自定义的,最好是随机数,负责这块的同事说如果不是随机数可能验证不通过,将商户key也填入,然后点击"生成签名",查看生成的sign值和服务器返回的sign值是否相同,如果相同则说明参数没有问题.参考微信官方文档,以上6个参数(另外还有sign)是必选参数,少了不行
--------------------------- ------------------------------- ----客户端部分 ---------- ------------------------------- --------------------- :
***生成带应用签名(主要是keystore问题)
1.用eclipse生成keystore
做android不知道keystore实在惭愧,今天遇到了,生成keystore的方式是:(不用eclipse的话 也可以用dos 网上可以找到)



如果要生成一个新的keystore,随意选择一个项目,来到下一步,创建一个新的keystore文件,指定生成到的路径和文件名,并设置密码



填写信息,这里一定要记下Alias(别名)和密码



最后成功生成keystore文件




2.用这个keystore文件导出android项目的apk,步骤与生成新的keystore基本相同



3.生成应用签名
(1)下载Gen_Signature_Android221cbf.apk
https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android221cbf.apk
(2)将用keytore签名过的apk装到安卓手机上,把 Gen_Signature_Android221cbf也装上
(3)打开
Gen_Signature_Android221cbf,输入项目的包名,这个程序会根据你输入的包名找到当前手机上安装的对应程序,然后根据程序的keystore签名和包名,生成一个字符串,这个字符串就是 应用签名 ,所以 应用签名与包名和keystore文件有关
这段文字不能复制,蛋疼的敲到电脑上吧,登录开放平台(操蛋的腾讯做个支付搞两个平台),到管理中心下面创建创建移动应用,
这里要用到包名和应用签名,加上就好了,keystore的作用有一半就在这里,在微信服务器上作为应用签名

4.MUI代码部分
mui.init(); mui.plusReady(function() { //定义支付通道 var channel = null; //获取支付通道 getChannels(); //获取支付通道的方法 function getChannels() { plus.payment.getChannels(function(channels) { for (var i = 0; i < channels.length; i++) { if (channels[i].id == "wxpay") { channel = channels[i]; } } plus.ui.toast("使用支付方式:" + channel.id); }, function(e) { plus.ui.toast("获取支付通道失败!"); console.log("获取支付通道失败!"); }) } //发起微信支付请求的方法 function pay(){ //获取微信支付参数的url var basic_url=" http://microtivo.chinacloudapp.cn:9202/"; mui.ajax(basic_url,{ data:"", dataType:"json", type:"get", success:ajax_success_callback, error:ajax_error_callback }) } //获取微信支付参数成功的回调函数 function ajax_success_callback(resObj){ console.log("请求微信支付参数成功,返回的json:"); var res_str=JSON.stringify(resObj); console.log(res_str); //用返回参数 发起微信支付请求 plus.payment.request(channel,res_str,wxpay_success,wxpay_error); } //获取微信支付参数失败的回调函数 function ajax_error_callback(e){ console.log("ajax获取参数失败"); } //微信支付成功回调 function wxpay_success(result){ plus.ui.alert("支付成功!",function(){ back(); }) } //微信支付失败回调 function wxpay_error(error){ plus.ui.alert("支付失败!"); plus.ui.alert(JSON.stringify(error)); console.log(JSON.stringify(error)); } //微信支付按钮 发起微信支付 document.getElementById("btn_pay").addEventListener("tap",function(){ pay(); }) })



关键代码也就这一句,拿到公司服务器返回带有七个参数的json后,
plus.payment.request(channel,res_str,wxpay_success,wxpay_error);
这里有问题的,可以参考mui官方文档,一般没什么问题
http://www.html5plus.org/doc/zh_cn/payment.html


6.manifest配置
我用的是云打包,配置很方便,都不用开manifest的代码模式,开个面板模式就行,只要加上appid就可以了,其它的在打包的时候加上



7.打包
注意,要调起微信支付,必须要打包成apk并安装才能使用,不要死命的试了(MUI官方demo可以不打包)

证书别名:keystore中的Alias
私钥密码:keystore中的密码
证书文件:keystore的所在路径




打包完成 测试成功
额 有的图不让贴 有问题的可以我空间看或者直接qq:619627239

更多相关文章

  1. Android_开发 实用滚轮效果选择数字(十三)
  2. android(11)_文件操作读取模式
  3. react中使用微信jssdk分享总结
  4. Android开发笔记——查询通话记录及短信记录
  5. android 关于 ScrollView嵌套GridView,ListView 显示和滑动的问题
  6. android中常用的方法备忘
  7. Android中JNI程序的编写(zhuan)
  8. android中使用DisplayMetrics获取屏幕参数
  9. (转)Android(安卓)TextView背景色、圆角、内部填充设置

随机推荐

  1. Android系统概述
  2. Android(安卓)之 WallpaperManager用法
  3. android textview改变部分文字的颜色和st
  4. [置顶] Android Scroll详解(三):Android
  5. android差分更新之服务端
  6. Android开发小记--开发实用工具类--数据
  7. Android网络编程之Http通信
  8. Android Develop API 1
  9. Tim Bray概括Android生态
  10. Android的设计尺寸