Cordova 调用微信SDK,实现微信支付、微信分享、微信登录、打开微信小程序

微信 cordova 插件 v1.0.0

插件环境 cordova-android >= 7.0.0

1.申请密钥

请到微信开放平台 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该应用提交审核,只有审核通过的应用才能进行开发。

2.安装插件

cordova plugin add cordova-plugin-wechat-chenyu --variable WECHAT_APPID=[your key]

3. 基础功能

  •  分享
  •  支付
  •  登录
  •  打开小程序

4.js/ts使用方法

//例如:
window["WeChat"].share(option, (res) => { }, (error) => { });
  • window["WeChat"].share(option,successCallback, failedCallback);
  • window["WeChat"].sendPaymentRequest(option,successCallback, failedCallback);
  • window["WeChat"].auth(option,successCallback, failedCallback);
  • window["WeChat"].openMiniProgram(option,successCallback, failedCallback);
  • window["WeChat"].onResp(successCallback);

5.参数说明及调用示例

所有方法的调用都可以看示例文档===> 示例文档
完整的示例代码(基于ionic3编写)===> 示例代码

任何方法都会返回一个正确的结果(successCallback)或者一个错误的反馈(failedCallback)

参数类型说明
optionOption方法所需的参数
successCallbackFunction方法正确运行会触发 successCallback 函数
failedCallbackFunction方法错误运行会触发 failedCallback 函数
  • 分享方法
    window["WeChat"].share(option,successCallback, failedCallback)

option

参数类型说明
messagemediaObject分享的对象
scenenumber分享的场景
typestring分享的类型
  • 支付方法
    window["WeChat"].share(option,successCallback, failedCallback)

option

参数类型说明
partnerIdstring微信支付分配的商户号
prepayIdstring微信返回的支付交易会话ID
nonceStrstring随机字符串,不长于32位。推荐随机数生成算法
timestampstring时间戳,请见接口规则-参数规定
packageValuestring暂填写固定值Sign=WXPay
signstring签名,详见签名生成算法注意:签名方式一定要与统一下单接口使用的一致
  • 微信登录
    window["WeChat"].auth(option,successCallback, failedCallback)
参数类型说明
scopestring应用授权作用域,如获取用户个人信息则填写 snsapi_userinfo
statestring用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止 csrf 攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加 session 进行校验
  • 打开小程序
    window["WeChat"].openMiniProgram(option,successCallback, failedCallback);
参数类型说明
userNamestring填小程序原始id
pathstring拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。
miniprogramTypenumber可选打开 开发版,体验版和正式版
  • 订阅返回值
    window["WeChat"].onResp((e) => {});
    当你 登录、支付、分享、打开小程序、他都会返回一个值,标记你是否成功操作 window["WeChat"].onResp(option,successCallback, failedCallback);
参数类型说明
successCallbackFunction当调用某个方式时,返回app时就会触发该方法
   try {
  window["WeChat"].onResp((e) => {
    console.log(e);
    if ((e["errCode"] == -6 && (e["pluginType"] == "Share" || e["pluginType"] == "WXLaunchMiniProgram" || e["pluginType"] == "Auth")) || e["errCode"] == -1 && (e["pluginType"] == "Pay")) {
      this.presentToast("签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等")
    }
    //登录反馈
    if (e["errCode"] == -4 && e["pluginType"] == "Auth") {
      this.presentToast("登录被拒绝!")
    }
    if (e["errCode"] == 0 && e["pluginType"] == "Auth") {
      this.presentToast("登录成功")
    }
    //支付反馈
    if (e["errCode"] == -2 && e["pluginType"] == "Pay") {
      this.presentToast("无需处理。发生场景:用户不支付了,点击取消,返回APP。")
    }
    if (e["errCode"] == 0 && e["pluginType"] == "Pay") {
      this.presentToast("展示支付成功的界面!")
    }
    //分享反馈
    if (e["errCode"] == 0 && e["pluginType"] == "Share") {
      this.presentToast("用户已经完成分享了,无法判断是成功分享,还是取消的分享!")
    }
    //打开小程序反馈
    if (e["errCode"] == -3 && e["pluginType"] == "WXLaunchMiniProgram") {
      this.presentToast("小程序启动失败 (错误码:-3)")
    }
  })
} catch (e) {
  console.warn("请在Android 或者ios 上运行")
}

6.联系我:

 QQ群 390736068

7.可定制功能

  •  图片识别
  •  语音识别
  •  语音合成
  •  微信内网页跳转APP功能(可跳转到指定app界面)

8.常见问题:

  • 返回键问题
    • 当你打开微信界面时,你点击返回。app可能会被关闭。
    • 原因:因为cordova app 默认设置为点击一次物理返回按键 app就会关闭。
    • 解决方案为 就是监听cordova 物理按键,阻止关闭代码如下。
    • js文档
    • ionic2及以上文档
//js 阻止app关闭
document.addEventListener("backbutton", onBackKeyDown, false);

function onBackKeyDown(e) {
  e.preventDefault();
  alert('Back Button is Pressed!');
}
//ionic2 + 阻止app关闭
platform.registerBackButtonAction(() => {
  console.log("点击了返回按钮")
  return false;
});
平台示例图片
js
ionic

Image text



 

  • 打开微信会闪一下 并且code提示为-6(分享)或者为-1(支付),代表签名或者包名有问题。
    • 检查包名是否和微信开放平台一致
    • 检查签名是否和微信开放平台一致
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值