bugfix
This commit is contained in:
parent
4ff6d1c826
commit
7098d92f05
@ -13,6 +13,7 @@ CONF = {
|
||||
"mail": os.getenv("MAIL", ""),
|
||||
"password": os.getenv("PASSWORD", ""),
|
||||
"from_mail": os.getenv("FROM_MAIL", "")
|
||||
"account_no": os.getenv("ACCOUNT_NO", "")
|
||||
},
|
||||
"wechat": {
|
||||
"mchid": os.getenv("WXP_MCHID",""),
|
||||
@ -44,6 +45,7 @@ async def create_payment(request, params_kw=None):
|
||||
if params_kw is None:
|
||||
params_kw = request.params_kw
|
||||
data = params_kw
|
||||
data.request = request
|
||||
provider = data.get("provider")
|
||||
if provider not in PROVIDERS:
|
||||
return {"error":"unknown provider"}
|
||||
@ -65,6 +67,9 @@ async def create_payment(request, params_kw=None):
|
||||
plog = await pl.new_log(userid, orgid, payment_name, amount, fee, client_ip, currency=currency)
|
||||
if plog:
|
||||
data.out_trade_no = plog.id
|
||||
data.customerid = orgid
|
||||
data.userid = userid
|
||||
data.client_ip = cloent_ip
|
||||
res = await PROVIDERS[provider].create_payment(data)
|
||||
return res
|
||||
raise Exception('write payment_log error')
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import re
|
||||
from random import randint
|
||||
from typing import Any, Dict, Optional
|
||||
import urllib
|
||||
import poplib
|
||||
from appPublic.log import debug
|
||||
from appPublic.dictObject import DictObject
|
||||
@ -62,28 +63,50 @@ class EmailClient:
|
||||
content = content.decode('utf-8')
|
||||
return content
|
||||
|
||||
class TransferPay(Gateway):
|
||||
def __init__(self, from_mail="", pop3server="", email="", password=""):
|
||||
class TransferGateway(Gateway):
|
||||
def __init__(self, from_mail="", pop3server="", email="", password="", account_no):
|
||||
self.from_email = from_email
|
||||
self.pop3server = pop3server
|
||||
self.email = email
|
||||
self.password = password
|
||||
self.account_no = account_no
|
||||
self.running = False
|
||||
|
||||
async def new_tcode(self, sor):
|
||||
tcode = self.gen_mailcode()
|
||||
sql = "select * from transfercode where tcode=${tcode}$ and status='0'"
|
||||
while True
|
||||
recs = await sor.sqlExe(sql, {'tcode': tcode})
|
||||
if len(recs) == 0:
|
||||
break
|
||||
tcode = self.gen_mailcode()
|
||||
return tcode
|
||||
|
||||
async def create_payment(self, payload: Dict[str, Any]) -> str:
|
||||
"""
|
||||
返回一个可以在 H5 里直接重定向的支付宝支付 URL
|
||||
"""
|
||||
ns = {
|
||||
"id": payload["out_trade_no"],
|
||||
"customerid": payload['customerid'],
|
||||
"amount": payload["amount"],
|
||||
"tcode": self.gen_mailcode(),
|
||||
"id": payload.out_trade_no,
|
||||
"customerid": payload.customerid,
|
||||
"amount": payload.amount,
|
||||
"curdate": curDateString(),
|
||||
"curtime": timestampstr(),
|
||||
"status": '0'
|
||||
}
|
||||
return
|
||||
ns = DictObject(**ns)
|
||||
ns.account_no = self.account_no
|
||||
env = payload.request._run_ns
|
||||
db = DBPools()
|
||||
dbname = env.get_module_dbname('unipay')
|
||||
async with db.sqlorContext(dbname) as sor:
|
||||
sql = "select * from transfercode where tcode=${tcode}$ and status='0'"
|
||||
ns.tcoce = await self.new_tcode(sor)
|
||||
await sor.C('transfercode', ns.copy())
|
||||
url = env.entire_url('transfer_info.ui')
|
||||
query_str = urllib.parse.urlencode(ns)
|
||||
return f'{url}?{query_str}'
|
||||
return None
|
||||
|
||||
def get_transfer_data(self, mail):
|
||||
assert mail.mailfrom == '95555@message.cmbchina.com'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user