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