index.js 4.6 KB

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