wx-jssdk.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /**
  2. * 微信jssdk调用
  3. */
  4. let Weixin = function() {
  5. var wx = require('jweixin-module');
  6. this.init = function(params) {
  7. wx.config({
  8. debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  9. appId: params.appId, // 必填,公众号的唯一标识
  10. timestamp: params.timestamp, // 必填,生成签名的时间戳
  11. nonceStr: params.nonceStr, // 必填,生成签名的随机串
  12. signature: params.signature, // 必填,签名
  13. jsApiList: ['chooseWXPay', 'openAddress', 'updateAppMessageShareData', 'updateTimelineShareData', 'scanQRCode'] // 必填,需要使用的JS接口列表
  14. });
  15. }
  16. /**
  17. * 发起支付
  18. * @param {Object} jsApiParame
  19. * @param {Object} callback
  20. */
  21. this.pay = function(jsApiParame, callback) {
  22. wx.ready(function() {
  23. wx.chooseWXPay({
  24. timestamp: jsApiParame.timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
  25. nonceStr: jsApiParame.nonceStr, // 支付签名随机串,不长于 32 位
  26. package: jsApiParame.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
  27. signType: jsApiParame.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
  28. paySign: jsApiParame.paySign, // 支付签名
  29. success: function(res) {
  30. typeof callback == 'function' && callback(res);
  31. }
  32. });
  33. })
  34. }
  35. /**
  36. * 获取收货地址
  37. * @param {Object} callback
  38. */
  39. this.openAddress = function(callback) {
  40. wx.ready(function() {
  41. wx.openAddress({
  42. success: function(res) {
  43. typeof callback == 'function' && callback(res);
  44. },
  45. fail: (res) => {
  46. alert(JSON.stringify(res))
  47. }
  48. });
  49. })
  50. }
  51. /**
  52. * 分享给好友
  53. * @param {Object} params
  54. * @param {Object} callback
  55. */
  56. this.setShareData = function(params, callback) {
  57. wx.ready(function() {
  58. // 自定义“分享给朋友”及“分享到QQ”按钮的分享内容
  59. wx.updateAppMessageShareData({
  60. title: params.title || '', // 分享标题
  61. desc: params.desc || '', // 分享描述
  62. link: params.link || '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  63. imgUrl: params.imgUrl || '', // 分享图标
  64. success: function() {
  65. typeof callback == 'function' && callback(res);
  66. }
  67. })
  68. // 自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容
  69. wx.updateTimelineShareData({
  70. title: params.title || '', // 分享标题
  71. link: params.link || '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  72. imgUrl: params.imgUrl || '', // 分享图标
  73. success: function() {
  74. typeof callback == 'function' && callback(res);
  75. }
  76. })
  77. });
  78. }
  79. /**
  80. * 扫一扫
  81. * @param {Object} callback
  82. */
  83. this.scanQRCode = function(callback) {
  84. wx.ready(function() {
  85. wx.scanQRCode({
  86. needResult: 1,
  87. scanType: ["qrCode"],
  88. success: function(res) {
  89. typeof callback == 'function' && callback(res);
  90. }
  91. });
  92. })
  93. }
  94. }
  95. export {
  96. Weixin
  97. }