index.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. //进入openid处理流程
  2. $.authAjax({
  3. url: api+"marketing/weixin/openidProcess",
  4. async: false
  5. });
  6. //页面结构加载完成后执行
  7. $(function() {
  8. //判断活动是否过期
  9. if (!activityIsExpired()) {
  10. return false;
  11. }
  12. //获取并显示码对应的奖励,如果return false,就不继续向下执行
  13. if (!showReward()) {
  14. return false;
  15. }
  16. //绑定单击事件
  17. $("#receiveReward").on("click",function () {
  18. receiveReward();
  19. });
  20. //获取js-sdk签名
  21. createJsapiSignature(currentUrl);
  22. //config信息验证成功后会执行ready方法
  23. wx.ready(function() {
  24. getLocation(
  25. function (latitude,longitude) {
  26. scanRecord(latitude,longitude);
  27. },
  28. function () {
  29. scanRecord('0.0','0.0');
  30. }
  31. );
  32. });
  33. //config信息验证失败后会执行error方法
  34. wx.error(function(res){
  35. alert("获取凭据失败:"+res);
  36. });
  37. });
  38. //判断活动是否过期
  39. function activityIsExpired(){
  40. var flag = true;
  41. $.authAjax({
  42. url: api+"marketing/weixin/activityIsExpired",
  43. async: false,
  44. success: function (res) {
  45. //活动未开始或已结束
  46. if (res.code != 0) {
  47. $.toast(res.msg, "cancel");
  48. flag = false;
  49. }
  50. }
  51. })
  52. return flag;
  53. }
  54. //获取并显示码对应的奖励
  55. function showReward() {
  56. var flag = true;
  57. $.authAjax({
  58. url: api+"marketing/weixin/calculateReward",
  59. async: false,
  60. success: function (res) {
  61. if (res.code == 0) {
  62. $("#reward").text(res.data);
  63. //码对应奖励已发放
  64. } else {
  65. $.toast(res.msg, "cancel");
  66. flag = false;
  67. }
  68. }
  69. })
  70. return flag;
  71. }
  72. //记录活动(扫码)事件
  73. function scanRecord(latitude,longitude) {
  74. // alert("记录扫码事件");
  75. $.authAjax({
  76. url: api+"marketing/weixin/scanRecord",
  77. type: "POST",
  78. data: {
  79. latitude: latitude,
  80. longitude:longitude,
  81. }
  82. })
  83. }
  84. //领取奖励,如果return false,就不继续向下执行
  85. function receiveReward() {
  86. if (!userIsSubscribeApp()) {
  87. // alert("未关注");
  88. location.href = "http://ws.js-dctech.com/qrcode.html";
  89. return false;
  90. }
  91. if (!userIsRegister()) {
  92. // alert("未注册");
  93. var url = spliceUrl("http://ws.js-dctech.com/register.html?");
  94. location.href = url;
  95. return false;
  96. }
  97. redpackProcess();
  98. }
  99. //用户是否关注公众号
  100. function userIsSubscribeApp() {
  101. var userIsSubscribeApp;
  102. $.authAjax({
  103. url : api+"marketing/weixin/userIsSubscribeApp",
  104. async: false,
  105. success: function (data) {
  106. userIsSubscribeApp = data;
  107. }
  108. })
  109. return userIsSubscribeApp;
  110. }
  111. //用户是否注册(即含地理位置信息)
  112. function userIsRegister() {
  113. var userIsRegister;
  114. $.authAjax({
  115. url : api+"marketing/weixin/userIsRegister",
  116. async: false,
  117. success: function (data) {
  118. userIsRegister = data;
  119. }
  120. })
  121. return userIsRegister;
  122. }
  123. //红包处理流程
  124. function redpackProcess() {
  125. $.showLoading('红包发放中');
  126. getLocation(
  127. function (latitude,longitude) {
  128. $.authAjax({
  129. url : api+"marketing/weixin/redpackProcess",
  130. async: false,
  131. data: {
  132. latitude: latitude,
  133. longitude: longitude
  134. },
  135. success: function (res) {
  136. $.hideLoading();
  137. if (res.code == 0) {
  138. $.toast(res.msg);
  139. } else {
  140. $.toast(res.msg, "cancel");
  141. }
  142. //TODO 跳转到对应领取成功页面
  143. },
  144. error: function (res) {
  145. $.hideLoading();
  146. $.toast("请求失败", "cancel");
  147. }
  148. })
  149. }
  150. );
  151. }