当前位置: 首页 > news >正文

合肥网站备案培训教育

合肥网站备案,培训教育,资源下载类网站源码,网站后台程序和数据库开发这几天涉及到一个个人项目的支付开发场景,正好完成之后,做一下开发记录,给有需要的朋友做一下参考 涉及安装Python环境请参考我专栏中的历史文章,这里不再重复说明 环境: Python3.11 使用Django框架 因本次代码为沙…

这几天涉及到一个个人项目的支付开发场景,正好完成之后,做一下开发记录,给有需要的朋友做一下参考

涉及安装Python环境请参考我专栏中的历史文章,这里不再重复说明

环境:

Python3.11 使用Django框架

因本次代码为沙箱环境,未涉及支付宝当面付的申请,如何有需要,可以评论区告诉我,我会单独写一篇文对申请过程进行说明。

内网穿透工具安装请参考:

代码步骤

1、安装支付宝第三方SDK,我这里没有用官方的,因为代码使用起来比较简洁

pip3 install python-aliyun-sdk

2、生成urls.py文件,代码如下

from django.urls import path
from . import viewsurlpatterns = [path('precreate_payment/', views.precreate_payment, name='precreate_payment'),path('payment_notify/', views.payment_notify, name='payment_notify'),
]

方法说明 :

precreate_payment:支付宝二维码扫码生成,请求地址:$host/precreate_payment/

payment_notify:支付宝导步回调,地址$host/payment_notify/

3、编写视图文件 views.py

from django.shortcuts import render, redirect
from django.conf import settings
from alipay import AliPay
from django.views.decorators.csrf import csrf_exempt
from django.urls import reverse
from django.http import HttpResponseRedirect, HttpResponse, JsonResponse
import random
from datetime import datetime
import json#生成支付宝请求地址,debug为是否开启沙箱
def initialize_alipay():alipay = AliPay(appid=settings.ALIPAY_APPID,app_notify_url=None,app_private_key_string=settings.ALIPAY_APP_PRIVATE_KEY,alipay_public_key_string=settings.ALIPAY_PUBLIC_KEY,sign_type="RSA2",debug=True)return alipay#订单ID生成
def generate_out_trade_no():now = datetime.now()out_trade_no = now.strftime('%Y%m%d%H%M%S')out_trade_no += str(random.randint(1000, 9999))return out_trade_nodef precreate_payment(request):alipay = initialize_alipay()out_trade_no = generate_out_trade_no()result = alipay.api_alipay_trade_precreate(out_trade_no=out_trade_no,total_amount=100.00,subject="Test Order",)if result.get("code") == "10000":qr_code_url = result.get("qr_code")return render(request, 'pay/precreate_payment.html', {'qr_code_url': qr_code_url})else:return HttpResponse("Error in pre-creating transaction: " + result.get("sub_msg"), status=400)@csrf_exempt
def payment_notify(request):body_str = request.body.decode('utf-8')params = dict(request.POST.items())sign = params.pop('sign', None)alipay = initialize_alipay()if alipay.verify(params, sign):print("Alipay notify parameters:", json.dumps(params, indent=4))return JsonResponse({'status': 'success'})return JsonResponse({'status': 'failure'}, status=400)

 以上代码中引用了一些三方模块,除了支付宝SDK,还有一些模块如果提示不存在,请自行安装

pyment_notify为支付宝异步回调接口,可以根据你真实环境来进行生成。本地业务可以在

print("Alipay notify parameters:", json.dumps(params, indent=4))

这行进行替换,处理业务逻辑。

4、功能测试

        1、访问$host/precreate_payment/,显示你的二维码

        2、使用支付宝沙箱APP,登陆进行扫码支付

        3、通过控制台查看你的支付宝回调接口,检查服务器是否接收到响应

备注说明:

本来简化了一下本地代理的软件, 结果审核没给过, 想用代理工具的自己参考我之前的ftp搭建工具吧。 或者搜一下内网穿透

 

http://www.15wanjia.com/news/14111.html

相关文章:

  • 用php做网站和java做网站网络营销做得好的产品
  • 武汉网站设计师培训学校营销技巧培训ppt
  • 外包兼职做图的网站西地那非片的功效与作用
  • 宁波装修公司站长seo综合查询
  • 苏州市相城区疫情最新消息seo怎么做最佳
  • 深圳市九号公告最新消息seo最好的工具
  • 南阳seo网站排名独立网站
  • wordpress页面访问量宁波seo外包推广渠道
  • html5网站建设基本流程分析网站
  • 网站优化 流量android优化大师
  • 网站开发和设计人员的岗位要求枸橼酸西地那非片的作用及功效
  • 个人能进行网站开发手机网站模板免费下载
  • 西宁手机微网站建设如何线上推广自己产品
  • 怎么自己做砍价网站广州网站seo公司
  • wordpress 前台编辑文章咸阳seo公司
  • java 直接做网站seo推广专员
  • 福州网站制作公司百度seo排名原理
  • 代办公司业务西安seo排名外包
  • 宜布网网站谁做的做公司网站
  • 扁平化网站建设公司百度实时热点排行榜
  • 做电影网站怎么降低内存西安百度推广电话
  • 网站建站多钱做网站公司
  • 网站建设工作室是干嘛的模板网站建站哪家好
  • web购物网站如何做谷歌收录查询工具
  • 常州网站推广多少钱优化 英语
  • 广东做网站百度seo工具
  • wordpress网站插件seo能干一辈子吗
  • 企业免费招聘网站长春关键词优化公司
  • 兰溪做网站广告接单平台有哪些
  • 有哪些做调查问卷赚钱的网站百度搜索关键词优化方法