mini/hb

Kimi.Huang 6 years ago
parent
commit
a1ae75394b
2 changed files with 49 additions and 1 deletions
  1. 3 1
      api/urls.py
  2. 46 0
      miniapp/redpack_views.py

+ 3 - 1
api/urls.py

@@ -12,7 +12,7 @@ from group import (groupuser_views, lensman_views, tourguidegroup_views, tourgui
12 12
                    tourguidegroupuser_views)
13 13
 from group import views as group_views
14 14
 from message import views as message_views
15
-from miniapp import views as mini_views
15
+from miniapp import views as mini_views, redpack_views
16 16
 from operation import views as op_views
17 17
 from page import oauth_views, sale_views, screen_views
18 18
 from pay import views as pay_views
@@ -182,6 +182,8 @@ urlpatterns += [
182 182
     url(r'^mini/userinfo$', mini_views.get_userinfo_api, name='get_userinfo_api'),  # 获取用户信息
183 183
     url(r'^mini/login$', mini_views.mini_login_api, name='mini_login_api'),  # 小程序登录
184 184
     url(r'^mini/userinfo2$', mini_views.get_userinfo_api2, name='get_userinfo_api2'),  # 获取用户信息
185
+
186
+    url(r'^mini/hb$', redpack_views.mini_hb_api, name='mini_hb_api'),  # 小程序红包
185 187
 ]
186 188
 
187 189
 urlpatterns += [

+ 46 - 0
miniapp/redpack_views.py

@@ -0,0 +1,46 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from django.conf import settings
4
+from django_response import response
5
+from pywe_pay import WeChatPay
6
+
7
+from account.models import UserInfo
8
+
9
+
10
+WECHAT = settings.WECHAT
11
+
12
+
13
+def mini_hb_api(request):
14
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
15
+    user_id = request.POST.get('user_id', '')
16
+
17
+    try:
18
+        user = UserInfo.objects.get(user_id=user_id)
19
+    except UserInfo.DoesNotExist:
20
+        return response()
21
+
22
+    openid = user.openid_miniapp
23
+    amount = 100
24
+
25
+    trade_type = 'MINIAPP'
26
+    # 根据 trade_type 获取 wechat 配置
27
+    wxcfg = WECHAT.get(trade_type, {})
28
+    # WeChatPay 初始化
29
+    wxpay = WeChatPay(wxcfg.get('appID'), wxcfg.get('apiKey'), wxcfg.get('mchID'), mch_cert=wxcfg.get('mch_cert'), mch_key=wxcfg.get('mch_key'))
30
+
31
+    wxrpk = wxcfg.get('redpack', {})
32
+    ret_data = wxpay.redpack.send(
33
+        openid,
34
+        amount,
35
+        send_name=wxrpk.get('SEND_NAME'),
36
+        act_name=wxrpk.get('ACT_NAME'),
37
+        wishing=wxrpk.get('WISHING'),
38
+        remark=wxrpk.get('REMARK'),
39
+        miniprogram=True,
40
+    )
41
+
42
+    package = ret_data.get('package', '')
43
+
44
+    wxahb_params = wxpay.jsapi.get_jsapi_params(package=package)
45
+
46
+    return response(200, data=wxahb_params)