支付方式
支付接口
想要在POS定义一个支付方式,需要遵循odoo原生的支付接口(PaymentInterface)。
支付接口包括一下几个支付方法:
- setup: 初始化支付方式, 将环境变量env, pos和支付方法参数赋值给支付对象。
- enable_reversals: 是否支持退款,支持退款的支付方式需要实现send_payment_reversal方法。
- send_payment_request: 发送支付请求,这个方法将在POS界面中发起一个支付请求。
- send_payment_cancel: 取消支付,使用此方法取消支付
- send_payment_reversal: 退款,使用此方法完成退款。
- close: 关闭支付
任何一个原生的POS支付方式或自定义支付方式都要实现支付接口定义的方法。
18.0与17.0不同的地方是, 17.0的payment_method属性在18.0中更名为了payment_method_id。
PosPayment
18.0将17.0原有的payment对象升级为了PosPayment对象。
下面我们来看一下PosPayment对象的使用方式。
使用uuid替代transaction_id
18.0中的pospayment使用uuid作为交易id,取代了17.0中的transcation_id。
PosPayment提供了一下几个方法:
- isSelected: 使用uuid来判断当前是否为选中的支付方式
- set_amount: 设置支付方式的金额
- get_amount: 获取支付方式的金额
- get_payment_status: 获取支付交易状态
- set_payment_status: 设置支付交易状态
- is_done:判断支付交易是否完成
- set_cashier_receipt: 设置收银员
- set_receipt_info: 设置小票信息
- export_for_printing: 导出打印信息
- is_electronic: 是否在线交易
- pay: 支付方法
- handle_payment_response: 处理交易返回信息。
Payment Status
- waiting
- pending
- done
- retry