微信
请求地址
https://pay.weixin.qq.com/static/applyment_guide/applyment_index.shtml
申请条件
支付宝
支付宝支付流程:
买家发送购买请求,服务生成订单
提交订单,卖家将支付请求发到支付宝
支付宝返回支付页面
买家在支付页面完成付款
支付url
https://open.alipay.com/platform/home.htm
开发测试 使用沙箱环境
下载安卓版
账号信息
支付宝接口文档地址 https://docs.open.alipay.com/
以卖家的身份进行收款
支付宝已经写好的sdk,可以使用模块的方式使用
使用需要安装
pip install pycryptodome #阿里sdk的依赖包
pip install python-alipay-sdk --upgrade
使用python完成支付
创建文件 测试demo
from alipay import Alipay
##公钥
alipay_public_key_string = """-----BEGIN PUBLIC KEY-----
##放公钥
-----END PUBLIC KEY-----"""
##私钥
alipay_private_key_string = """-----BEGIN RSA PRIVATE KEY -----
##放私钥
-----END RSA PRIVATE KEY-----"""
##实例化支付对象
order_string = alipay.api_alipay_trade_page_pay(
subject = '牛羊生鲜', ##交易主题
out_trade_no = '1000000002' #订单号
total_amount = '100', #交易总金额
return_url=None, ##请求支付,之后及时回调一个借口
notify_url = None ##通知地址
)
##发送支付请求
##请求地址 支付网关 + 实例化订单
result = "https://openapi.alipaydev.com/geteway.do?"+order_string
print(result)
视图:
接收请求,处理,获取支付页面,并完成跳转支付页面
def AlipayViews(request):
order_id = request.GET.get("order_id") ## 订单id
payorder = PayOrder.objects.get(id=order_id)
## 实例化支付对象
alipay = AliPay(
appid='2016101300673550',
app_notify_url=None,
app_private_key_string=alipay_private_key_string,
alipay_public_key_string=alipay_public_key_string,
sign_type="RSA2",
)
## 实例化订单
order_string = alipay.api_alipay_trade_page_pay(
subject='天天生鲜', ## 交易主题
out_trade_no=payorder.order_number, ## 订单号
total_amount=str(payorder.order_total), ## 交易总金额
return_url="http://127.0.0.1:8000/Buyer/payresult/", ## 请求支付,之后及时回调的一个接口
notify_url="http://127.0.0.1:8000/Buyer/payresult/" ## 通知地址,
)
## 发送支付请求
## 请求地址 支付网关 + 实例化订单
result = "https://openapi.alipaydev.com/gateway.do?" + order_string
print(result)
return HttpResponseRedirect(result)
视图:支付提交之后,跳转的我们的结果页面
def payresult(request):
return render(request,"payresult.html")
视图:服务器,收到支付结果,然后修改订单状态
其他支付方式
富有,连连,渤海银行,攀枝花银行,民生银行
请求方式:
api接口
form表单(网关接口)
form表单支付流程
api支付流程
Django的部署
部署 虚拟机 docker 云服务器
django 2.2.1
python 3.5.2
linux
python 3.5 +django 2.2.1 +nginx +uwsgi +linux
niginx apache
django自带服务器,python manage.py runserver 启动,django自带一个小型的服务器
最大并发量200,用来开发测试,需要nginx(反向代理,负载均衡),但是使用nginx直接加django不行,需要中间人uwsgi,django项目的wsgi.py
云服务器
ip地址:公网 私有网络
防火墙
配置安全组
、