@@ -182,7 +182,10 @@ 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 |
+] |
|
| 185 | 186 |
|
| 187 |
+urlpatterns += [ |
|
| 188 |
+ url(r'^jsapi/hb$', redpack_views.jsapi_hb_api, name='jsapi_hb_api'), # JSAPI红包 |
|
| 186 | 189 |
url(r'^mini/hb$', redpack_views.mini_hb_api, name='mini_hb_api'), # 小程序红包 |
| 187 | 190 |
] |
| 188 | 191 |
|
@@ -10,6 +10,42 @@ from account.models import UserInfo |
||
| 10 | 10 |
WECHAT = settings.WECHAT |
| 11 | 11 |
|
| 12 | 12 |
|
| 13 |
+def jsapi_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 |
+ transfer = request.POST.get('transfer', '')
|
|
| 17 |
+ |
|
| 18 |
+ try: |
|
| 19 |
+ user = UserInfo.objects.get(user_id=user_id) |
|
| 20 |
+ except UserInfo.DoesNotExist: |
|
| 21 |
+ return response() |
|
| 22 |
+ |
|
| 23 |
+ openid = user.openid |
|
| 24 |
+ amount = 100 |
|
| 25 |
+ |
|
| 26 |
+ trade_type = 'JSAPI' |
|
| 27 |
+ # 根据 trade_type 获取 wechat 配置 |
|
| 28 |
+ wxcfg = WECHAT.get(trade_type, {})
|
|
| 29 |
+ # WeChatPay 初始化 |
|
| 30 |
+ wxpay = WeChatPay(wxcfg.get('appID'), wxcfg.get('apiKey'), wxcfg.get('mchID'), mch_cert=wxcfg.get('mch_cert'), mch_key=wxcfg.get('mch_key'))
|
|
| 31 |
+ |
|
| 32 |
+ if transfer: |
|
| 33 |
+ ret_data = wxpay.transfer.transfer(openid, amount, u'企业付款', check_name='NO_CHECK') |
|
| 34 |
+ else: |
|
| 35 |
+ wxrpk = wxcfg.get('redpack', {})
|
|
| 36 |
+ ret_data = wxpay.redpack.send( |
|
| 37 |
+ openid, |
|
| 38 |
+ amount, |
|
| 39 |
+ send_name=wxrpk.get('SEND_NAME'),
|
|
| 40 |
+ act_name=wxrpk.get('ACT_NAME'),
|
|
| 41 |
+ wishing=wxrpk.get('WISHING'),
|
|
| 42 |
+ remark=wxrpk.get('REMARK'),
|
|
| 43 |
+ miniprogram=False, |
|
| 44 |
+ ) |
|
| 45 |
+ |
|
| 46 |
+ return response(200, data=ret_data) |
|
| 47 |
+ |
|
| 48 |
+ |
|
| 13 | 49 |
def mini_hb_api(request): |
| 14 | 50 |
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
| 15 | 51 |
user_id = request.POST.get('user_id', '')
|