This commit is contained in:
yumoqing 2025-12-12 17:30:08 +08:00
parent 0b95095a87
commit 4254136853
2 changed files with 21 additions and 10 deletions

View File

@ -20,9 +20,8 @@ CONF = {
}, },
"alipay": { "alipay": {
"app_id": os.getenv("ALIPAY_APPID",""), "app_id": os.getenv("ALIPAY_APPID",""),
"privkey_pem": open(os.getenv("ALIPAY_PRIV","./alipay_priv.pem"),"rb").read(), "app_private_key_pem": open(os.getenv("ALIPAY_PRIV","./alipay_priv.pem"),"rb").read(),
"alipay_pub_pem": open(os.getenv("ALIPAY_PUB","./alipay_pub.pem"),"rb").read(), "alipay_public_key_pem": open(os.getenv("ALIPAY_PUB","./alipay_pub.pem"),"rb").read()
"sandbox": True
}, },
"stripe": { "stripe": {
"api_key": os.getenv("STRIPE_KEY","") "api_key": os.getenv("STRIPE_KEY","")

View File

@ -26,10 +26,8 @@ class AlipayGateway(Gateway):
app_id: str, app_id: str,
app_private_key_pem: str, app_private_key_pem: str,
alipay_public_key_pem: str, alipay_public_key_pem: str,
notify_url: str,
): ):
self.app_id = app_id self.app_id = app_id
self.notify_url = notify_url
# -------- load keys ------- # -------- load keys -------
self._private_key = serialization.load_pem_private_key( self._private_key = serialization.load_pem_private_key(
@ -82,15 +80,29 @@ class AlipayGateway(Gateway):
# 支付 - H5 页面跳转 # 支付 - H5 页面跳转
# ============================================================================== # ==============================================================================
async def create_payment(self, *, out_trade_no: str, subject: str, amount: str) -> str: async def create_payment(self, dayload: payload: Dict[str, Any]) -> str:
""" """
返回一个可以在 H5 里直接重定向的支付宝支付 URL 返回一个可以在 H5 里直接重定向的支付宝支付 URL
""" """
"appid": self.appid,
"mchid": self.mchid,
"description": payload["subject"],
"out_trade_no": payload["out_trade_no"],
"notify_url": payload["notify_url"],
"amount": {
"total": int(payload["amount"]),
"currency": payload.get("currency", "CNY")
},
"scene_info": {
"payer_client_ip": payload.get("client_ip", "127.0.0.1"),
"h5_info": {"type": "Wap"}
}
biz_content = { biz_content = {
"out_trade_no": out_trade_no, "out_trade_no": payload["out_trade_no"],
"total_amount": amount, "total_amount": payload["amount"],
"subject": subject, "subject": payload["subject"],
"product_code": "QUICK_WAP_WAY" "product_code": "QUICK_WAP_WAY"
} }
@ -102,7 +114,7 @@ class AlipayGateway(Gateway):
"sign_type": "RSA2", "sign_type": "RSA2",
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"), "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"version": "1.0", "version": "1.0",
"notify_url": self.notify_url, "notify_url": payload["notify_url"],
"biz_content": json.dumps(biz_content, separators=(",", ":")) "biz_content": json.dumps(biz_content, separators=(",", ":"))
} }