文章目录
- 1 流程
- 2 支付宝沙箱
1 流程
需要导入模块:pip install alipay-sdk-python ;pip install pycrypto
必备条件,公钥密钥
setting配置
# 支付宝沙箱
# ALIPAY_APPID = "xxxxxxx"
# ALIPAY_URL = "https://openapi.alipaydev.com/gateway.do"
# 支付宝配置参数
ALIPAY_APPID = "xxxxx"
ALIPAY_URL = "https://openapi.alipay.com/gateway.do"
生成订单:
order.o_id = '%s%s' % (datetime.now().strftime('%Y%m%d%H%M%S'), order.user.id)
根据订单号
VIEWs.py
alipay = AliPay(
appid=settings.ALIPAY_APPID,
app_notify_url="http://xxx/vuser/check_pay/", # 默认回调url
app_private_key_path=os.path.join(settings.BASE_DIR, "apps/user_vip/app_private_key.pem"),
alipay_public_key_path=os.path.join(settings.BASE_DIR, "apps/user_vip/alipay_public_key.pem"),
# 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
sign_type="RSA2", # RSA 或者 RSA2
debug=False, # 默认False 配合沙箱模式使用
)
# 电脑网站支付,需要跳转到https://openapi.alipay.com/gateway.do? + order_string
order_string = alipay.api_alipay_trade_page_pay(
out_trade_no=order_id,
# total_amount=0.05,
total_amount=str(order.o_total_price), # 将Decimal类型转换为字符串交给支付宝
subject="优-%s"%tishi,
return_url="http://www.xxx.com/index?user=%s&token=%s&bind=1"%(username, token),
# return_url=None,
notify_url=None, # 可选, 不填则使用默认notify url
)
# 让用户进行支付的支付宝页面网址
url = settings.ALIPAY_URL + "?" + order_string
return HttpResponseRedirect(url)