Odoo19配置KHQR支付 - xiaohao0576/odoo-doc GitHub Wiki

使用KHQR需要的设置

  • 在发票或会计模块中,安装柬埔寨会计会计本地化
  • 在发票或会计模块中,客户付款设置中,启用在发票中添加付款二维码
  • 公司的货币主币种,需要选择USD或KHR,一旦选定,后期就不要更改了
  • 需要联系人中创建银行, res.bank,国家也选择柬埔寨。
  • 需要创建一个联系人银行账户,国家选择柬埔寨
  • 在银行账户中,选择账户持有人,注意,账户持有人的基本信息中,需要完善城市信息,比如Phnom Penh
  • EMV QR Settings选项卡中,完善proxy_typeproxy_value两个字段,其中proxy_value是bakong账号
  • 如果启用include_reference选项,生成的KHQR中会包含备注信息

在POS中使用KHQR

  • 在发票模块创建日记账,类型是银行,银行账号选择上一节创建的银行
  • 在POS中创建支付方式,日记账选择上一步创建的日记账

在服务器动作中生成KHQR

以下代码生成的是KHQR的文本,并存储到pos.payment的ticket字段中

# 本服务器动作是在pos.payment模型上创建的
record.ensure_one()

bank = record.payment_method_id.journal_id.bank_account_id
    
khqr_params = {
    'qr_method':'emv_qr', 
    'amount':record.amount, 
    'currency': record.currency_id, 
    'debtor_partner': record.partner_id, 
    'free_communication':'', 
    'structured_communication':'' 
} 

khqr_value = bank._get_qr_vals(**khqr_params)

record['ticket'] = khqr_value #保存khqr字符串,以备后续查询
    
action = {
    'name': record.name,
    'amount': record.amount,
    'khqr_value': khqr_value,
    'khqr_code':''
}