Android Cordova 微信支付

准备工作

  • 公司营业执照
  • 公司法人身份证正反面照片
  • 公司法人手持身份证照片
  • 公司对公账号(并能提供微信向您公司转账的数额)
  • 您的身份证正反面照片(作为公司技术人员)
  • 您的手机号码
  • 绑定您银行卡的微信
  • 300元认证费用
  • 公司固话
  • 7~21天时间
  • APP 原型(能提供APP 首页,版权页,产品分类页,产品详情页,支付页截图,确定APP 的名字,图标,keystore 文件)

1.注册微信开放平台账号,按指引激活邮箱,完善开发者资料,支付费用,等待审核。

2.审核通过后,在管理中心页面点击创建移动应用应用签名应用包名填写所开发应用的值,等待审核,审核通过后,记住您的APPID,记住您的应用签名应用包名。(应用
签名获取方法,请将您的APP 通过key 发布之后,安装您的APP和签名获取软件,打开签名获取软件,输入您的应用包名即可)

3.在管理中心页面,点击应用右边的详情按钮,找到微信支付,点击右边的申请开通链接,按要求填写。

4.申请通过后你会收到一封邮件,内含微信商家平台的账户信息,按邮件指引登录并完成商户认证,记住你的商户ID(邮件里的微信支付商户号)。

5.在账户中心API 安全页面,点击设置密钥,API密钥的位置填写32 位密钥, 记住你的API密钥。(附:随机密钥生成地址

研发工作

1.新建cordova 项目 cordova create wechat-pay

2.添加安卓平台,cd wechat-pay && cordova platform add android

3.打开config.xml,把io.cordova.hellocordova更改为应用包名

4.安装微信支付插件cordova plugin add https://github.com/ZhichengChen/cordova-plugin-wechat-payments

5.打开plugins/com.justep.cordova.plugin.weixin.v3/plugin.xmlplatforms/android/AndroidManifest.xml,将$weixin_appid替换成您的APPID

6.打开platforms/android/src/com/justep/base/Constants.java,将PACKNAMEACTIVITYCLASSNAMEAPPNAMEAPPIDPARTNERIDAPIKEY分别赋值应用包名MainActivity应用名APPID商户IDAPI密钥

7.打开platforms/android/build.gradle,在android { 下加入一行useLibrary 'org.apache.http.legacy'

8.将你的keystore 文件拷贝到根目录下,在根目录下新建build.json,内容如下

{
    "android": {
        "release": {
            "keystore": "./替换成您的keystore 文件名",
            "storePassword": "替换成你的password",
            "alias": "替换成你的alias",
            "password" : "替换成你的password",
            "keystoreType": ""
        }
    }
}

9.打开www/index.html,在class 为app 的div 里加入支付按钮代码,加入后body 内代码如下

    <div class="app">
        <h1>Apache Cordova</h1>
        <div id="deviceready" class="blink">
            <p class="event listening">Connecting to Device</p>
            <p class="event received">Device is Ready</p>
        </div>
        <br/>
        <button id="pay">微信支付</button>
    </div>
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="js/index.js"></script>

10.打开www/js/index.js, 在onDeviceReady 函数里加入支付代码,加入后onDeviceReady 函数代码如下

onDeviceReady: function() {
  this.receivedEvent('deviceready');
  function randomString(len) {
     var chars = '1234567890';
     var maxPos = chars.length;
     var pwd = '';
     for (i = 0; i < len; i++) {
       pwd += chars.charAt(Math.floor(Math.random() * maxPos));
     }
     return pwd;
  }
  document.getElementById('pay').addEventListener('click', function(){
     var weixin = navigator.weixin;
     var notifyUrl = "http://www.justep.com";
     var traceID = randomString(6);
     var traceNo = randomString(9);

     weixin.generatePrepayId({
             "body" : "x5外卖",
             "feeType" : "1",
             "notifyUrl" : notifyUrl,
             "totalFee" : "1",
             "traceId" : traceID,
             "tradeNo" : traceNo
         }, function(prepayId) {
             weixin.sendPayReq(prepayId, function(message) {
                 console.log(message);
                 var responseCode = parseInt(message);
                 if (responseCode === 0) {
                     alert("微信支付成功");
                 } else if (!isNaN(responseCode)) {
                     alert("微信支付失败(-13)"+responseCode);
                 } else {
                     alert("微信支付失败(-10)");
                 }
             }, function(message) {
                 alert("微信支付失败(-10)");
             });
         }, function(message) {
             console.log(message);
             alert("微信支付失败(-11)");
         }
     );
  }, false)
},

11.运行cordova run android --release

源文件下载

链接: https://pan.baidu.com/s/1c121g9E 密码: eacd

欢迎加微信探讨,微信验证申请请填写博客标题