67 lines
3.4 KiB
Plaintext
67 lines
3.4 KiB
Plaintext
async def jd_pay_orders(ns):
|
|
"""
|
|
#京东确认支付
|
|
:param ns: order_id = 订单id
|
|
:return:
|
|
"""
|
|
|
|
db = DBPools()
|
|
async with db.sqlorContext('kboss') as sor:
|
|
try:
|
|
if ns:
|
|
bz_order = await sor.R('bz_order',{'id':ns.get('order_id')})
|
|
# kboss平台扣费
|
|
count = await getCustomerBalance(sor, bz_order[0]['customerid'])
|
|
if count == None:
|
|
count = 0
|
|
if count - float(bz_order[0]['amount']) < 0:
|
|
pricedifference = count - round(bz_order[0]['amount'], 2)
|
|
# 不够支付,调用支付宝支付
|
|
return {'status': False, 'msg': '账户余额不足', 'pricedifference': round(pricedifference,2)}
|
|
# 足够支付
|
|
await order2bill(ns['order_id'], sor)
|
|
bills = await sor.R('bill', {'orderid': ns['order_id'], 'del_flg': '0'})
|
|
jdparamsNumber = await sor.R('params', {'pname': '京东代金券号'})
|
|
jdparamscount = await sor.R('params', {'pname': '京东代金券金额'})
|
|
datans = {}
|
|
datans['ordernumber'] = bz_order[0]['provider_orderid']
|
|
datans['vouchernumber'] = jdparamsNumber[0]['pvalue']
|
|
datans['vouchervalue'] = jdparamscount[0]['pvalue']
|
|
datans['voucherprice'] = float(bz_order[0]['originalprice'])
|
|
jd_confirm_pay_order = await jd_confirm_pay_orders(datans)
|
|
if jd_confirm_pay_order.get('status') == True:
|
|
# 判断上面京东是否支付成功,如果支付成功走下面订单状态修改
|
|
# 修改订单状态、添加用户资源
|
|
for j in bills:
|
|
ba = BillAccounting(j)
|
|
await ba.accounting(sor)
|
|
await sor.U('bill', {'id': ns['order_id'], 'bill_state': '1'})
|
|
await sor.U('bz_order',{'id':ns.get('order_id'),'order_status':'1'})
|
|
order_goods = await sor.R('order_goods',{'orderid':ns.get('order_id')})
|
|
for i in order_goods:
|
|
print(i)
|
|
product = await sor.R('product',{'id':i['productid']})
|
|
data = {}
|
|
data['id'] = uuid()
|
|
# data['id'] = UUID()
|
|
data['providerrid'] = product[0]['providerpid']
|
|
data['productname'] = product[0]['name']
|
|
data['productdesc'] = product[0]['description']
|
|
data['customerid'] = bz_order[0]['customerid']
|
|
data['productid'] = i['id']
|
|
data['orderid'] = ns.get('order_id')
|
|
data['start_date'] = datetime.datetime.now().date()
|
|
#到期日期 这里后期需要算出来
|
|
if i['end_date'] != None or i['end_date'] != '':
|
|
data['expire_date'] = i['end_date']
|
|
await sor.C('customer_goods',data)
|
|
return {'status': True,'msg':'购买成功'}
|
|
else:
|
|
return {'status':False,'msg':'购买失败'}
|
|
except Exception as e:
|
|
return {
|
|
'status': False,
|
|
'err_msg': str(e)
|
|
}
|
|
ret = await jd_pay_orders(params_kw)
|
|
return ret |