index.js 5.3 KB

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