会话基础知识
付款会话(或者简称“会话”)是包含特定订单敏感数据的请求字段的一个临时容器。 您可以使用会话来允许付款人直接向 ANZ eGate payment gateway 提供敏感的付款详细信息。 这样,您可以在任何以后的交易请求中简单地引用该会话,而无需直接处理付款详细信息。 当 ANZ eGate payment gateway 收到引用会话的交易请求时,它会将会话中的字段与请求中直接提供的字段组合起来形成最终交易。
使用会话可以实现更为复杂的集成,在这些集成中,请求的不同部分在付款流的不同阶段或通过不同渠道捕获。 例如,Hosted Session 和某些付款方式(例如,ClickToPay)的付款流都使用会话来收集和存储敏感的付款人信息。 由于您不需要在服务器上处理或存储任何付款详细信息,因此可以降低 PCI 合规性要求和实施成本。
一个会话的生命周期包括:
- 在您的服务器中创建会话。
- 使用您想要存储在会话中的任何非敏感信息来更新服务器中的会话。
- 使用您网站或应用上的会话允许网关从付款人处收集任何敏感的付款详细信息。
- 在您的服务器中的付款交易或其他操作中引用会话。
一个会话通常持续约 15 分钟,在此期间您可以根据需要发送一个或多个付款交易。
创建会话
您可以使用 Create Session 操作创建会话。 在请求中,您可以选择提供身份验证限制 (session.authenticationLimit),其指示使用会话 ID 作为密码可以提交给网关的操作数。 如果没有提供限制,网关会设置一个默认值。 您可以在使用 会话身份验证 的请求中使用会话 ID 作为密码。 会话身份验证允许您直接从您的应用或网站(而不是您的服务器)发出 API 请求,可用于 3DS 支付验证请求。
CREATE SESSION 操作返回以下字段:
- session.id - 唯一的会话 ID,您必须在后续请求中提供该 ID 才能引用该会话。
- session.authenticationLimit - 您在请求中提供的限制或网关的默认值。
- session.aes256Key - 您可以用来解密通过付款人的浏览器或移动设备传递到您网站的敏感数据的密钥。
- session.version - 会话版本。 您可以使用此字段来实现会话内容的乐观锁。
- session.updateStatus - 上次尝试修改会话的结果的摘要。
URL | https://anzworldline.gateway.mastercard.com/api/rest/version/72/merchant/<merchant_ID>/session |
HTTP 方法 | POST |
{ "session": { "authenticationLimit": 25 } }
更新会话
您可以使用 Update Session 操作在会话中添加或更新请求字段。 它允许您将付款和付款人数据添加到会话中,数据随后可以成为确定在身份验证操作中与付款人关联的风险的输入。
或者,您可以使用 UPDATE SESSION FROM WALLET 操作与 ClickToPay 来更新会话。
- 更新会话时,您不能从中删除字段,只能覆盖现有字段的值。
- 您可以在服务器中使用 UPDATE SESSION 操作来向会话添加字段。 要将敏感的付款信息添加到会话(通过允许付款人向网关直接提供这些信息),您必须在付款页上使用托管字段。 有关如何处理会话中的托管字段的更多详细信息,请参阅进行付款。
URL | https://anzworldline.gateway.mastercard.com/api/rest/version/72/merchant/<merchant_ID>/session/<session_ID> |
HTTP 方法 | PUT |
{ "order": { "amount": 100, "currency": "USD" } }
在付款交易中使用会话
将所有相关字段添加到会话后(直接从您的服务器添加或在您的付款页上使用托管字段),您可以使用 session.id 字段在以下任何操作中引用该会话:
- 建议您使用 Retrieve Session 交易来检索会话详细信息,并在发起付款或 Tokenisation 操作前检查会话内容。
- 当您在操作请求中引用会话时,如果在引用的会话和操作请求本身中都提供了同一字段的值,则使用操作请求中的值。 如需了解更多信息,请参阅多个付款数据源。
- Verify
- 支付
- 授权
- Standalone Capture
- Standalone Refund
- Create or Update Token
- Payment Options Inquiry
- Initiate Authentication
- Authenticate Payer
您可以使用同一个会话执行多个操作,例如,PAY 和 CREATE OR UPDATE TOKEN。 如果您想要发起付款并存储令牌以供将来付款使用,这很有用。
根据会话内容做出业务决策
如果您根据从会话获取的数据来做业务决策,需要使用会话的乐观锁功能。 这可确保您用于做出决策的数据与用于处理请求操作的数据相同。
- 根据付款人提供的卡类型计算附加费金额。
- 根据付款人提供的送货地址计算运费金额。
要使用乐观锁功能:
- 使用 RETRIEVE SESSION 操作检索会话内容。
- 记下响应中的 session.version 值。
- 根据需要做出业务决策。
- 将您的操作请求发送到网关,并在请求中包含 session.version 值以及会话 ID。
如果会话内容发生了变化,请求中的 session.version 将与当前版本不匹配,网关将拒绝该操作并返回 error.cause=INVALID_REQUEST。