在客户订单输入中管理与 CenPos 的信用卡付款
摘要
本文档描述了在使用 CenPOS 作为第三方提供商时,客户订单输入中信用卡管理流程的差异。它还描述了 M3 Business Engine 支持的 CenPOS 交易类型和方法。
背景
M3 Business Engine中存在一种解决方案,以支持使用第三方提供商 CenPOS 在客户订单输入中进行信用卡付款。该解决方案使 CenPOS POS 集成系统从信用卡授权。打开 (CRS435) 中执行信用卡交易。
也可能输入由 CenPOS 已授权的信用卡付款的批订单。
在这些客户订单输入中的信用卡管理和管理客户订单输入中的信用卡付款中描述了基本的信用卡管理流程。
准备工作
- 使用脚本对 (CRS435) 进行个性化设置,该脚本控制与 CenPOS POS 集成系统的连接。在实现期间使用的 JavaScript 称为 CenPosM3_vX,其中 X 表示版本。
- 在用户。打开 (MNS150) 中,将公司和分部设置为 (CRS435) 中客户订单连接到的公司和分部。
- 完成输入客户订单:普通订单输入中提到的起始条件。
- 从配置信用卡管理界面定义设置。
- 在 AR 付款方式。打开 (CRS076) 为所需付款方式定义付款类别 03(银行转账)。
- 在 AR 付款方式。打开 (CRS076) 中选中信用卡复选框。
- 在付款条款。打开 (CRS075) 中将所使用的付款条款的所有值都设置为零。
- 如果在释放拣货单时执行信用卡授权的验证,则必须在发货策略。打开 (MWS010) 中选中“下达拣货时信用检查”复选框。
限制
- 每种实现必须确保其环境和到其特定信用卡管理软件的界面。
- 对于 CenPOS,M3 仅支持交易类型和本文档中提到的方法。
- M3 Business Engine 仅支持一次查询一个编号。
- CenPOS 不支持无效授权交易。如果执行了无效授权交易,则交易将设置为 85=无效,但不会执行到 CenPOS 的连接。
M3 支持的 CenPOS 交易类型
交易类型 |
描述 |
---|---|
授权 |
将执行信用卡授权交易。 |
贷方 |
将执行信用卡交易。盲目信用应用于信用卡账户而不参考以前的交易。 |
SpecialForce |
将执行信用卡强制交易,而无需指定完整的卡信息。提取当前批次中用于结算的先前授权交易。 |
Void |
将执行信用卡无效交易。从现有批处理中删除信用销售交易,以便不向客户收取收费。 无效交易可以在 SpecialForce、Credit 和 SpecialReturn 交易上执行。 |
参考授权 |
由于参考授权交易使用现有的编号创建新授权,因此不需要再次提供信用卡明细。 两个不同的编号彼此没有连接。 |
SpecialReturn |
将执行退货交易。信用卡返回交易将来自先前交易的指定金额贷入持卡人,并在当前批次中提取该新交易以用于结算。 可以执行返回交易而不指定完整的卡信息。 |
M3 支持的 CenPOS 方法
如果不执行授权或贷方交易,则将用于处理卡交易的方法称为 ProcessCreditCard。
用于查询先前交易的方法是 GetCardTrx。
M3 Business Engine仅支持特定编号的查询。
输入使用信用卡付款的客户订单
- 使用信用卡的付款方式指定客户订单时,将运行 (CRS435) 以授权信用卡付款。
- 如果第三方提供商是 CenPOS,则不显示卡号信息,因为这将在 CenPOS POS 集成系统中而不是在 M3 中进行描述。
- 用户单击 F16=“提交”,将启动 CenPOS POS 系统。
- 显示 CenPOS POS 系统,用户指定信用卡明细并单击“提交”按钮。
- 自动显示 (CRS435) ,并显示编号和结果(来自 CenPOS)。
- 用户现在可以按照正常流程退出客户订单。
当执行授权或贷方交易(需要提供卡明细)时,将通过 JavaScript 启动 CenPOS POS 系统。否则,CenPOS 在后台启动。
在批订单输入中使用信用卡付款输入客户订单
如果在M3 Business Engine外部执行授权、贷方或特殊返回交易,则可以在 API OIS100MI(客户订单界面),交易“AddBatchHead”的字段编号 (NREF) 中添加从 CenPOS 接收的编号。M3 根据 M3 中的设置选择第三方提供商。
如果第三方提供商是 CenPOS,并且编号尚未更新到信用卡授权表 (CRCCAT),则对 CenPOS 执行查询。用从 CenPOS 检索的信息更新信用卡授权表 (CRCCAT)。内部编号链接到来自 CenPOS 的编号,并更新为客户订单(OOHEAD.NREF)。
如果未批准查询,则将状态设置为 17 = 订单批量输入时查询错误。在 (CRS435) 中将交易类型设置为“未知”且阻止客户订单。此交易必须通过执行新的查询在 (CRS435) 中进行处理。查询结果将在 (CRS435) 中自动更新。如果交易仍未获得批准,则必须进行分析。如果交易来自订单批量输入,则卡类型始终设置为空白。
信用卡提取
当在信用卡记录。打开 (CRS436) 中执行提取且从 CenPOS 接收到已批准的状态时,由于 CenPOS 直接执行所有检查,因此直接将提取交易设置为状态 90(完成)。
模拟不使用 JavaScript。
执行提取时,税额将发送到 CenPOS。从发票(发票行表 OINVOL)中检索税额。
在拣货点的自动参考授权
如果在连接到客户订单类型的发货策略上激活了拣货点的信用检查,则在执行拣货时可以自动触发参考授权。
在以下条件下执行自动参考授权:
- 在连接到客户订单类型的发货策略上激活了拣货点的信用检查。
- 根据信用卡接口设置。打开 (CRS434) 中定义的授权天数,已执行的授权已过期。
- 如果客户订单部分已交货、已开票和已提取,且在 (CRS434) 中定义了授权天数,则无论是否通过授权天数,都会执行自动参考授权。在这种情况下,旧的授权用于提取第一个交货。
- 如果批准参考授权,则可以相应地处理客户订单。如果未批准参考授权,则阻止客户订单且授权记录将收到错误代码。
以下是一个例外:
如果客户订单部分已交货或已开票,且尚未执行此发票的提取(CRCCCT 不等于 90),则不会在拣货点执行自动参考授权。相反,在 (CRS435)(表 CRCCAT)中将状态设置为 15(错误代码),且阻止客户订单。如果执行参考授权,则在使用第三方提供商 CenPOS 时,原始编号不再有效。因此,需要在完成参考授权之前执行原始交易的提取。
建议在执行开票时发送发票用于提取。
授权金额是客户订单上剩余开票的金额。
如果在 (CRS434) 中未定义授权天数,则不会在拣货点执行自动参考授权。如果客户订单部分已交货、已开票和已提取,则 (CRS435) 中的状态将设置为 15(错误代码),并且会阻止客户订单。必须先执行手动参考授权,然后才能对其进行拣货。
如果未激活拣货点的信用检查,则不会自动执行授权,也不会检查部分交货。开票完成后,发票将在 (CRS436) 中检索错误代码,并且可以人工执行参考授权。
商业卡信息
附加信息将发送给第三方提供商以支持商业卡用于提取交易。将该信息分成标题和行信息。标题信息是使用信用卡付款的订单的一般信息,而行信息则是针对订单中的每一行。折扣金额设置为总订单折扣且不考虑行折扣。发送行收费和标题收费作为行。CenPOS 支持根据标准 UTF-8 的字符集。
标题信息 |
M3 字段 |
---|---|
CustomerCode |
付款方 (PYNO) |
ShiptofromZIPcode |
来自客户的邮政编码 (PONO) |
Destinationcountrycode |
三位数国家/地区代码 - 从客户国家/地区代码转换而来 (CSCD) |
VATinvoicereferencenumber |
发票号 (CINO) |
VATtaxamountrate |
税额 (VTAM) |
Freightshippingamount |
尚未分类 |
Dutyamount |
尚未分类 |
Orderdate |
订单日期 (ORDT) |
Discountamount |
折扣金额 (DIAM) |
行信息 |
M3 字段 |
---|---|
ItemCommodityCode |
产品组 (ITCL) |
ItemDescription |
物料描述 (ITDS) - 根据客户订单上的语言转换而来 |
ItemSequenceNumber |
自动生成序号 |
LineItemTotal |
行金额 (IVQS * NEPR) |
ProductCode |
物料号 (ITNO) |
数量 |
发票数量 (IVQS) |
UnitCost |
净价 (NEPR) |
UnitofMeasureCode |
通过 CenPOS 预定义的计量单位代码 |
订单信息(如行收费和舍入)以相同的方式显示为行,正如普通物料行是发送到 CenPOS。
计量单位代码根据信用卡交易表。打开 (CRS443) 中指定的设置进行转换。
收费信息 |
M3 字段 |
---|---|
ItemCommodityCode |
不用于行收费 |
ItemDescription |
名称 (CRD0) - 根据客户订单上的语言转换而来 |
ItemSequenceNumber |
自动生成序号 |
LineItemTotal |
收费金额 (CRAM) |
ProductCode |
收费 ID (CRID) |
数量 |
不用于行收费 |
UnitCost |
不用于行收费 |
UnitofMeasureCode |
不用于行收费 |
舍入 |
M3 字段 |
---|---|
ItemCommodityCode |
不用于舍入 |
ItemDescription |
不用于舍入 |
ItemSequenceNumber |
自动生成序号 |
LineItemTotal |
四舍五入 - 从发票 |
ProductCode |
不用于舍入 |
数量 |
不用于舍入 |
UnitCost |
不用于舍入 |
UnitofMeasureCode |
不用于舍入 |
技术信息
除了那些通过 JavaScript 发送的交易之外,可以通过在 M3 Business Engine Grid 中启用 mvx.fim.logCenPOS 的概念日志记录来检查以 XML 格式发送到 CenPOS 的交易。
JavaScript:
在 (CRS435) 中执行个性化设置,且用户执行授权或贷方并单击“提交”时,将运行 JavaScript 以创建 CenPOS 的 URL。
JavaScript 使用来自 (CRS435) 视图(客户订单编号、付款方、第三方提供商、第三方 ID、金额、货币、交易类型和地址)的信息,并且从不同的其他 API 程序中检索附加信息。
使用的 API
CRS434MI,交易 Get3rdPartyId 用于检索信息,例如 URL 地址和商户 ID。
当从 CenPOS 检索响应的 URL 时,启用 M3 Business Engine 以使用 CRCCINMI AddCCRefno 检索内部编号和状态。JavaScript 使用从 API 交易和 CenPOS 检索的信息更新 (CRS435)。
调用 CRCCINMI AddCCRefNo 时:
分部 |
|
第三方提供商 |
CenPOS |
订单类别 |
3 |
截止日期 |
来自 CenPOS |
结果 |
来自 CenPOS |
自定义信息 ID 1 |
来自 CenPOS 的结果消息 |
自定义信息 ID 2 |
CenPOS 不适用 |
信用卡授权金额 |
从 CenPOS,注意如果贷方金额为负值 |
信用卡账号 |
从 CenPOS(最后带有**的四位数字) |
卡片类型 |
来自 CenPOS |
公司采购卡类型 |
始终设置为空 |
状态 |
如果通讯错误,设置为 10。如果其他错误,设置为 15。 如果批准授权,设置为 20。如果批准信用,设置为 90。 |
参考 |
来自 CenPOS |
交易类型 |
A = 授权 C = 信用 |
币种 |
来自 CenPOS |
第三方 ID |
从 (CRS435) |
持卡人姓名 |
来自 CenPOS |