日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Django實現微信小程序支付的示例代碼

瀏覽:215日期:2022-07-05 16:49:32

1.下載相關的庫

微信官方已經提供了方便開發者的SDK,可是使用pip方式下載:

pip install wechatpy

2. 在項目的settings.py文件添加相關配置

具體的參數需要自己到小程序微信公眾平臺和微信商戶平臺獲取。

WECHAT = { ’APPID’: ’appid’, # 小程序ID ’APPSECRET’: ’appsecret’,# 小程序SECRET ’MCH_ID’: ’mch_id’, # 商戶號 ’TOTAL_FEE’: ’1’, # 總金額, 單位為“分” ’SPBILL_CREATE_IP’: ’127.0.0.1’, # 終端IP ’NOTIFY_URL’: ’http://127.0.0.1:8000/wechat/payNotify/’, # 通知地址 ’TRADE_TYPE’: ’JSAPI’, # 交易類型 ’MERCHANT_KEY’: ’merchant_key’, # 商戶KEY ’BODY’: ’商品描述’,# 商品描述}

3. 給Django項目新建app

例如我新建的app為:Pay 在settings.py文件的INSTALLED_APPS添加剛才新建的app

4. 編寫app/views.py:

from django.http import HttpResponseimport requestsimport jsonfrom django.conf import settingsfrom wechatpy.pay import WeChatPayfrom app_base.base_viewset import BaseAPIViewfrom rest_framework import permissionsfrom lxml import etree as etfrom rest_framework import statusclass WeChatPayViewSet(BaseAPIView): ''' 通過小程序前端 wx.login() 接口獲取臨時登錄憑證 code 將 code 作為參數傳入,調用 get_user_info() 方法獲取 openid ''' def get_user_info(self, js_code): ''' 使用 臨時登錄憑證code 獲取 session_key 和 openid 等 支付部分僅需 openid,如需其他用戶信息請按微信官方開發文檔自行解密 ''' req_params = { ’appid’: settings.WECHAT[’APPID’], ’secret’: settings.WECHAT[’APPSECRET’], ’js_code’: js_code, ’grant_type’: ’authorization_code’, } user_info = requests.get(’https://api.weixin.qq.com/sns/jscode2session’, params=req_params, timeout=3, verify=False) return user_info.json() def get(self, request): code = request.GET.get('code', None) openid = self.get_user_info(code)[’openid’] pay = WeChatPay(settings.WECHAT[’APPID’], settings.WECHAT[’MERCHANT_KEY’], settings.WECHAT[’MCH_ID’]) order = pay.order.create( trade_type=settings.WECHAT[’TRADE_TYPE’], # 交易類型,小程序取值:JSAPI body=settings.WECHAT[’BODY’], # 商品描述,商品簡單描述 total_fee=settings.WECHAT[’TOTAL_FEE’], # 標價金額,訂單總金額,單位為分 notify_url=settings.WECHAT[’NOTIFY_URL’], # 通知地址,異步接收微信支付結果通知的回調地址,通知url必須為外網可訪問的url,不能攜帶參數。 user_id=openid # 用戶標識,trade_type=JSAPI,此參數必傳,用戶在商戶appid下的唯一標識。 ) wxpay_params = pay.jsapi.get_jsapi_params(order[’prepay_id’]) return HttpResponse(json.dumps(wxpay_params))class WeChatPayNotifyViewSet(BaseAPIView): permission_classes = (permissions.AllowAny, ) def get(self, request): _xml = request.body # 拿到微信發送的xml請求 即微信支付后的回調內容 xml = str(_xml, encoding='utf-8') print('xml', xml) return_dict = {} tree = et.fromstring(xml) # xml 解析 return_code = tree.find('return_code').text try: if return_code == ’FAIL’:# 官方發出錯誤return_dict[’message’] = ’支付失敗’# return Response(return_dict, status=status.HTTP_400_BAD_REQUEST) elif return_code == ’SUCCESS’:# 拿到自己這次支付的 out_trade_no_out_trade_no = tree.find('out_trade_no').text# TODO 這里省略了 拿到訂單號后的操作 看自己的業務需求 except Exception as e: pass finally: return HttpResponse(return_dict, status=status.HTTP_200_OK)

補充一些繼承的類:

# -*- coding: utf-8 -*-from rest_framework.authentication import TokenAuthenticationfrom rest_framework.views import APIViewfrom rest_framework import permissions__author__ = ’JayChen’class BaseAPIView(APIView): permission_classes = (permissions.IsAuthenticated,) # authentication_classes = (TokenAuthentication,)

5. 給Pay app添加urls.py并編寫

# -*- coding: utf-8 -*-__author__ = ’JayChen’from django.conf.urls import urlfrom rest_framework.urlpatterns import format_suffix_patternsfrom pay import viewsapp_name = ’pay’urlpatterns = [ # 微信小程序支付 url(r’^pay/’, views.WeChatPayViewSet.as_view(), name=’pay’), # 支付結果回調 url(r’^payNotify/’, views.WeChatPayNotifyViewSet.as_view(), name=’pay_notify’),]

6.在項目的urls.py添加上面新增的urls.py

from django.contrib import adminfrom django.urls import path, includefrom rest_framework_jwt.views import obtain_jwt_tokenurlpatterns = [ path(’admin/’, admin.site.urls), path(’token_auth/’, obtain_jwt_token, name=’jwt_token’), path(’user/’, include(’auth_jwt.urls’)), path(’wechat/’, include(’pay.urls’)), # 微信支付相關]

7.調試

微信小程序登陸后會得到一個code,把這個code作為參數發送給Django項目的后端:例如:http://0.0.0.0:8000/wechat/pay/?code=033h0P0w3ANPRU2ntl0w36HHyy1h0P08

注意:這個code每次登錄都會返回,并且只能使用一次,然后就失效。

返回的數據:

{ 'appId': 'wx14b75285dfe1', 'timeStamp': '1595228', 'nonceStr': '1Wtu5lKb6T3fJLiNzc09ay2Z', 'signType': 'MD5', 'package': 'prepay_id=wx02158826854686197390000', 'paySign': '89599A11E051D3B20FF57'}

小程序拿到這些數據就能調起支付。

到此這篇關于Django實現微信小程序支付的文章就介紹到這了,更多相關Django實現微信小程序支付內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: 微信
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
激情婷婷久久| 日韩在线成人| 在线精品观看| 亚洲免费中文| 亚洲国产综合在线看不卡| 国产白浆在线免费观看| 亚洲一区二区三区久久久| 亚洲成人日韩| 亚洲精品在线观看91| 久久理论电影| 极品日韩av| 午夜免费一区| 五月天久久网站| 日韩视频一区二区三区在线播放免费观看| 麻豆mv在线观看| 麻豆mv在线观看| 日韩精品久久久久久久电影99爱 | 日韩欧美中文字幕电影| 尹人成人综合网| 免费观看不卡av| 久久免费高清| 欧美日韩国产在线一区| 国产精品免费看| 中文字幕av一区二区三区四区| 蜜桃一区二区三区在线| 天堂va在线高清一区| 欧美日本不卡| 国产欧美日本| 国产一区二区精品福利地址| 免费福利视频一区二区三区| 亚洲成av在线| 狠狠干成人综合网| 亚洲视频国产精品| 青草国产精品| 精品一区二区三区中文字幕| 成人台湾亚洲精品一区二区| 久久久精品五月天| 亚洲女同中文字幕| 久久亚洲二区| 日韩精彩视频在线观看| 老司机精品在线| 日本免费久久| 老色鬼久久亚洲一区二区| 欧美亚洲综合视频| av资源新版天堂在线| 欧美粗暴jizz性欧美20| 亚洲一区二区日韩| 欧美三级第一页| 欧美精品导航| 久久国产电影| 天海翼亚洲一区二区三区| 美女视频网站久久| 亚洲午夜视频| 青青草国产精品亚洲专区无| 国产va免费精品观看精品视频| 成人免费电影网址| 日韩精品成人| 日韩黄色大片网站| 亚洲精品少妇| 国产一区二区三区国产精品 | 老司机精品视频网| 欧美成人日韩| 日韩精品欧美大片| 激情国产在线| 亚洲精品伦理| 神马久久午夜| 亚洲精品极品| 亚洲成人不卡| 日韩高清一区| 日韩久久精品| 欧美视频二区| 午夜日韩av| 欧美黄页在线免费观看| 伊人久久大香线蕉av超碰演员| 国产精品对白| 午夜一级久久| 欧产日产国产精品视频| 最近国产精品视频| а√天堂中文在线资源8| 色综合视频一区二区三区日韩| 国产盗摄——sm在线视频| 亚洲精品欧美| 免费视频亚洲| 福利精品一区| 日韩高清国产一区在线| 亚洲性视频h| 久久精品一本| 日本va欧美va精品| 最新国产拍偷乱拍精品| 麻豆精品新av中文字幕| 老鸭窝亚洲一区二区三区| а√天堂8资源中文在线| 一区二区精彩视频| 1024精品一区二区三区| 精品国产网站| 欧美片第1页综合| 综合日韩在线| 亚洲激情中文在线| av资源新版天堂在线| 欧美偷窥清纯综合图区| 亚洲免费成人| 久久美女性网| 色欧美自拍视频| 久久不卡国产精品一区二区| 蜜臀av在线播放一区二区三区| 欧美日韩一二| 成人在线观看免费视频| 欧美一区成人| 中文字幕一区二区av| 不卡视频在线| 九九精品调教| 91av亚洲| 国产一区二区三区久久| 美女国产精品久久久| 欧美日一区二区三区在线观看国产免| 午夜亚洲精品| 亚洲综合电影一区二区三区| 激情六月综合| 久久精品国产大片免费观看| 欧美xxxx中国| 精品欠久久久中文字幕加勒比| 欧美视频精品全部免费观看| 天堂成人国产精品一区| 欧美日韩少妇| 亚洲精品小说| 亚洲国产一区二区在线观看| 欧美影院三区| 久久婷婷一区| 久久久久久美女精品| 成人久久一区| 91精品国产自产在线观看永久∴ | 老司机久久99久久精品播放免费| 国产一区清纯| 一区免费视频| 免费成人av在线播放| 日韩精品一级二级| 91久久亚洲| 久久先锋影音| 日韩国产一二三区| 国产亚洲一区| 精品午夜av| 欧美激情另类| 久久高清精品| 免费日韩av片| 在线一区二区三区视频| 亚洲三级av| 日韩极品在线观看| 国产日韩免费| 美女尤物国产一区| 成人在线视频免费看| 精精国产xxxx视频在线播放| 日韩一区二区三区免费| 欧美亚洲激情| 综合五月婷婷| 国产精品对白| 亚洲不卡系列| 美日韩精品视频| 国产剧情在线观看一区| 国产成人在线中文字幕| 日韩专区精品| 国产精品呻吟| 日本不卡中文字幕| 精品视频在线你懂得| 久久国产欧美| 蜜桃视频在线观看一区二区| 国产欧美一区二区三区精品观看| 麻豆精品久久| 在线视频观看日韩| 深夜日韩欧美| 激情综合五月| 欧美日韩国产在线一区| 欧美视频二区| 亚洲不卡av不卡一区二区| 亚洲伊人精品酒店| 国产一区二区三区探花| 欧美粗暴jizz性欧美20| 日韩二区三区四区| 国产精品久久久久蜜臀| 美女尤物久久精品| 精品中文在线| 久久亚洲视频| 国产一区二区三区网| 亚洲欧美日韩国产一区| 国产日韩欧美一区二区三区在线观看 | 日本不卡中文字幕| 国产精品大片| 午夜av成人| 午夜久久av| 狠狠久久伊人| 亚洲国产成人精品女人| 偷拍亚洲精品| 国产成年精品| 99视频精品| 国产日韩亚洲欧美精品| 日本午夜大片a在线观看| 亚洲+小说+欧美+激情+另类| 久久精品免费看| 亚洲性图久久| 国产日韩视频在线| 国产女优一区|