iats-payments/civicrm

iATS Payments的CiviCRM扩展


README

CiviCRM扩展用于iATS网络服务支付处理器

本README.md包含针对系统管理员/开发者的具体信息。有关用户/实施者的信息可以在文档Wiki中找到:[https://github.com/iATSPayments/com.iatspayments.civicrm/wiki/Documentation](https://github.com/iATSPayments/com.iatspayments.civicrm/wiki/Documentation)

需求

  1. CiviCRM 5.x。已在最新的ESR版本和官方支持的最新版本上进行测试。

  2. 当使用“旧版”处理器时,您的PHP需要包含SOAP扩展(php.net/manual/en/soap.setup.php)。

  3. 要在生产环境中使用此扩展,您必须拥有iATS Payments账户。该扩展支持“旧版”和“1st Pay”网关。

  4. 文档Wiki:[https://github.com/iATSPayments/com.iatspayments.civicrm/wiki/Documentation](https://github.com/iATSPayments/com.iatspayments.civicrm/wiki/Documentation)

  5. 为了处理ACH/EFT捐款(验证它们)和处理任何类型的定期捐款,您必须为您的CiviCRM安装配置cron。有关如何操作的信息可以在:[https://docs.civicrm.org/sysadmin/en/latest/setup/jobs/](https://docs.civicrm.org/sysadmin/en/latest/setup/jobs/)

安装

此扩展遵循标准的安装方法 - 如果您有受支持的CiviCRM版本并且已设置扩展目录,它将出现在“管理扩展”列表中,名为“iATS Payments (com.iatspayments.civicrm)”。点击安装。

截至CiviCRM 5.x,iATS扩展与CiviCRM下载一起分发。这通常是正确的安装版本。有关从先前手动安装转换的说明,请参阅#242

如果您需要有关安装扩展的帮助,请尝试:[https://docs.civicrm.org/sysadmin/en/latest/customize/extensions/](https://docs.civicrm.org/sysadmin/en/latest/customize/extensions/)

如果您想直接从github尝试特定版本,您可能已经知道如何操作。

一旦安装了扩展,您需要添加支付处理器并输入您的iATS凭证

  1. 管理 -> 系统设置 -> 支付处理器 -> + 添加支付处理器

  2. 如果您使用的是“旧版”iATS账户,请选择以下一个或多个:iATS Payments信用卡、iATS Payments ACH/EFT或iATS Payments SWIPE。它们都由本扩展提供,说明略有不同。您可以使用相同的凭证为不同类型创建多个支付处理器条目。

  3. 如果您使用的是新的“1stPay”iATS账户,请选择以下一个或多个:iATS Payments 1stPay信用卡或iATS Payments 1stPay ACH。必须专门在您的账户上启用ACH,如果您不确定,请联系iATS Payments。

  4. 支付处理器的“支付处理器标题”是您的网站访客在选择支付方式时将看到的标题,因此通常在此处使用“信用卡”,如果有任何关于货币的疑问,请使用“信用卡C$”(或US$)。您的iATS Payments账户配置为单一货币,因此当您设置支付页面时,您必须手动确保设置了正确的货币(如果您只处理一种货币,则不会出现问题)。

  5. 对于旧版处理器,您可以使用代理代码为TEST88、密码为TEST88的共享测试账户。这是一个共享测试账户,因此不要输入任何个人信息。

  6. 对于1stPay处理器,您可能可以使用相同的凭据,但需要不同的网站URL进行预填充,但需要进行一些设置。感谢@twjordan提供的文档https://gist.github.com/twjordan/68451998a68f072e079536f205486007

  7. 如果您想使用实时工作流程进行测试,您只需在实时处理器字段中临时使用测试账户凭据即可。

  8. 创建捐赠页面(或访问现有页面)→ 在配置下→ 捐赠金额→ 选择您新安装/配置的支付处理器,然后保存。

扩展测试说明

以下说明是为旧版处理器编写的,1stPay测试说明尚未添加。

  1. 我们的测试矩阵目前包括21种交易类型。在此查看结果摘要:https://cloud.githubusercontent.com/assets/5340555/5616064/2459a9b8-94be-11e4-84c7-2ef0c83cc744.png

  2. 管理捐赠页面→ 链接→ 实时页面。

  • iATS支付信用卡:使用测试VISA:安全码=123,任何未来的到期日期 - 处理任何金额。

  • iATS支付ACH/EFT:使用000000作为过渡号码;123作为银行号码;123456作为银行账户号码$1

  • iATS支付SWIPE:不易测试 - 即使您有iATS支付来源的加密USB卡读卡器,您也需要一张物理的伪造信用卡,其磁条上有安全码=123和任何未来的到期日期 - 处理任何金额。

  1. iATS还有另一张测试VISA:41111111111111111安全码=123和任何未来的到期日期

  2. 对于VISA 41111111111111111的交易响应取决于处理的金额,如下所示

  • 1.00 OK: 678594;
  • 2.00 REJ: 15;
  • 3.00 OK: 678594;
  • 4.00 REJ: 15;
  • 5.00 REJ: 15;
  • 6.00 OK: 678594:X;
  • 7.00 OK: 678594:y;
  • 8.00 OK: 678594:A;
  • 9.00 OK: 678594:Z;
  • 10.00 OK: 678594:N;
  • 15.00,如果CVV2=1234 OK: 678594:Y;如果没有CVV2:REJ: 19
  • 16.00 REJ: 2;
  • 其他金额REJ: 15
  1. 完成TEST支付后→ 检查捐赠→ 仪表板。信用卡交易立即授权(=完成)。ACH/EFT将(=挂起)。

  2. 访问https://home.iatspayments.com→ 点击右上角的客户端登录按钮

  • 使用TEST88和TEST88登录
  • 点击报告→ 日志→ 信用卡交易→ 获取日志→ 如果今天很忙,这里将有很多交易 - 因此点击显示全部并向下滚动以查看您通过CiviCRM处理的交易
  • 点击报告→ 日志→ ACH/EFT交易→ 列表批次(测试交易将在这里,直到发送到银行处理 - 之后 - 根据结果 - 它将出现在ACHEFT批准或ACHEFT拒绝日志中)。
  1. 如果看起来不正确,您可以开启Drupal和CiviCRM日志 - 尝试另一个TEST交易 - 然后查看有关SOAP交换的详细日志,以获取更多有关可能出错的地方的提示。

  2. 要测试定期捐赠 - 尝试每天创建一个定期捐赠,然后第二天手动触发计划任务:iATS支付定期捐赠

  3. 要测试ACH/EFT捐赠 - 手动运行计划任务:iATS支付验证 - 它将检查iATS是否有来自银行的任何消息。是或否何时可用取决于星期几和交易提交的时间。可能需要过夜(周末过夜)才能得到验证。

一旦您确认一切顺利,那么您需要做的就是更新支付处理器数据——使用您自己的iATS代理代码和密码。

通常,'遗留'的iATS主账户(以01结尾)不能通过Web服务进行资金推送。因此,当您与iATS设置账户时,请他们为您创建另一个(套)代理代码:例如,80、81等。

此外,请记得在任何生产环境中关闭调试/日志记录!

问题

了解最新版本中当前问题的最佳来源是github问题队列:https://github.com/iATSPayments/com.iatspayments.civicrm/issues

某些问题可能与核心CiviCRM问题相关,可能没有立即的解决方案,但我们将努力帮助您了解、绕过和/或修复您在问题队列中提出的问题。

以下是常见问题列表

意外失败。如果您发现您定期捐款的失败次数异常多,请查阅此页面以了解扩展如何尽可能处理这些问题以及管理员可以做什么: https://github.com/iATSPayments/com.iatspayments.civicrm/wiki/Recurring-Contribution-Failure-Handling

9002错误 - 如果您在尝试捐款时遇到此错误,那么您是从iATS服务器返回的错误,因为账户配置错误。当这种情况发生且您使用'遗留'的iATS账户时 -> 检查您的密码中是否有特殊字符(并删除它们)。如果您使用'1st Pay',请联系iATS客户服务确保您的账户配置正确。

CiviCRM核心在提交ACH/EFT后立即分配会员状态(=新)和延长会员结束日期,以及活动状态(=已注册)。如果在付款仍然挂起的情况下(对于ACH/EFT可能是几天),捐款收到Ok:BankAccept -> 扩展会将CiviCRM中的捐款标记为完成。如果捐款没有收到Ok:BankAccept -> 扩展会将CiviCRM中的捐款标记为拒绝 - 然而 - 相关的现有会员和活动记录可能需要手动更新。

请注意,ACH退货需要手动处理。如果发生此类ACH退货,iATS Payments将通过电子邮件通知组织 - 包括原因(例如,NSF)。根据您的组织程序(例如,如果这些是活动注册的款项 -> 是否应取消该注册或要求参与者支付现金;是否应对参与者收取NSF费用等),由CiviCRM管理员在CiviCRM中处理。

关于在定期捐款中使用价格集的注意事项。CiviCRM API在行项目簿记方面做得不完整,因此如果您需要在定期捐款中详细记录行项目,您可能会失望。此外,如果定期捐款的总金额更改,则没有可靠地将其重新分配到原始行项目的方法,因此在这种情况下,它们根本不使用。虽然不是总是理想的情况,但一种可能的解决方案是为不同类型的CiviCRM付款进行不同的交易。

如果您有任何问题,请向github存储库提交问题。

com.iatspayments.civicrm