- 集成指南
- 支持的功能(付款方式)
- 实施浏览器付款集成
- Klarna Pay Now
Klarna Pay Now
Klarna Pay Now 是瑞典一家广受欢迎的银行 Klarna AB 向欧洲付款人提供的一种即时付款方式。付款人可以通过银行转账、直接借记或任何卡来付款。
QNB ALAHLI 支持 Klarna Pay Now。此页内容介绍特定于 Klarna Pay Now 的集成详细信息。建议您在构建 Klarna Pay Now 集成前,先阅读浏览器付款集成指南。
先决条件
要通过 QNB ALAHLI 提供 Klarna Pay Now,
- 您必须向您的浏览器付款服务提供商注册
- 您在 QNB ALAHLI 上的商家配置文件必须通过浏览器付款服务提供商使用您的账户的详细信息配置,以及
- 您必须有使用支持的货币之一的银行账户,且该账户已向您在浏览器付款服务提供商处的商家账户注册。
Klarna Pay Now 交易
Klarna Pay Now 支持源自多个国家/地区的相应货币的交易。
国家/地区 | 货币 |
---|---|
奥地利 (AUT) | EUR |
比利时 (BEL) | EUR |
德国 (DEU) | EUR |
意大利 (ITA) | EUR |
荷兰 (NLD) | EUR |
瑞典 (SWE) | SEK |
西班牙 (ESP) | EUR |
瑞士 (CHE) | CHF |
Klarna Pay Now 集成
<<checkout>> 集成让您可以通过网关托管和显示的交互来从付款人处收集付款详细信息。
从 API 版本 65 开始,在 your payment service provider 为您启用并配置了 Klarna Pay Now 后,它会自动成为付款方式之一。
有关详细信息,请参阅通过 <<checkout>> 集成进行浏览器付款。
<<directPayment>> 集成可让您在自己的结账页提供 Klarna Pay Now。
<<webServicesIntegration>> 版本 63 起支持 Klarna Pay Now。
在 sourceOfFunds.type = KLARNA_PAY_NOW
且 browserPayment.operation = PAY
时发起 Initiate Browser Payment
请求(Klarna Pay Now 不支持 Authorize 操作)。
从 API 版本 65 开始,使用 bankAccountCountryCode
字段。此字段指定付款人拥有银行账户的国家/地区。
{ "apiOperation":"INITIATE_BROWSER_PAYMENT", "billing":{ "address":{ "city":"Edinburgh", "company":"MPGS", "country":"DEU", "postcodeZip":"EH123AB", "stateProvince":"Scotland", "street":"OceanPoint", "street2":"OceanDrive" } }, "browserPayment":{ "operation":"PAY", "returnUrl":"<your_merchant_URL>" }, "customer":{ "account":{ "id":"custoAccount" }, "dateOfBirth":"1999-12-31", "email":"john.smith@example.com", "firstName":"John", "lastName":"Smith", "mobilePhone":"01234567890", "nationalId":"X4RTBPFW4" }, "order":{ "amount":"154.16", "currency":"EUR", "item":[ { "name":"Diesel Jeans", "quantity":"1", "unitPrice":"70.83" }, { "name":"Adidas Trainers", "quantity":"1", "unitPrice":"83.33" } ] }, "shipping":{ "address":{ "city":"Shipsville", "country":"GBR", "postcodeZip":"EH67DX", "stateProvince":"Scotland", "street":"2ShippingHeights", "street2":"ShipsDrive" }, "contact":{ "email":"john.smith@example.com", "firstName":"John", "lastName":"Smith" } }, "sourceOfFunds":{ "type":"KLARNA_PAY_NOW", "provided":{ "klarnaPayNow":{ "bankAccountCountryCode":"GBR" } } } }
除浏览器付款请求中需要的标准字段外,还应提供处理 Klarna Pay Now 所需的以下信息。
账单地址和联系人详细信息
除非另有说明,否则这些字段是强制的,是支持 Klarna Pay Now 风险评估和信用检查流程的必需字段。付款人的联系人信息用于与付款人通信以及提供电子发票和付款通知。
billing.address.city
billing.address.country
billing.address.postcodeZip
billing.address.street
customer.email
customer.firstName
customer.lastName
customer.mobilePhone
:在不提供customer.phone
时,此字段是必需的。customer.phone
:在不提供customer.mobilePhone
时,此字段是必需的。customer.nationalId
:此字段为可选字段。
送货地址和联系人详细信息
如果为任何 shipping.address.*
或 shipping.contact.*
字段提供了值,这些字段则是强制的。
shipping.address.city
shipping.address.country
shipping.address.postcodeZip
shipping.address.street
shipping.contact.email
shipping.contact.firstName
shipping.contact.lastName
订单项详细信息
提供所购买的每个订单商品的完整详细信息,以便 Klarna Pay Now 可以正确验证并向付款人显示这些信息,并支持 Klarna Pay Now 的风险和信用检查流程。
order.item[n].name
order.item[n].quantity
:此字段的值必须是整数。order.item[n].unitPrice
order.item[n].unitDiscountAmount
:当商品使用折扣时,此字段是必需的,而且,如果在order.discount.amount
字段中提供了值,则必须提供此字段。order.item[n].unitTaxAmount
:当付款人必须为商品纳税时,此字段是必需的。order.item[n].detail.unitTaxRate
:当提供了单位纳税金额值时,此字段是必需的。
付款人银行账户的国家/地区代码
您必须在 sourceOfFunds.provided.klarnaPayNow.bankAccountCountryCode 字段中提供付款人银行账户的国家/地区代码。
运费和手续费
订单应支付的总纳税金额会在付款流期间向付款人显示。如果应付的运送和处理费金额包含纳税金额,那么您必须创建一个订单行来表示运送和处理,以便可以提供独立的纳税金额。如果不需要支付税金,运送和处理费金额可以在 order.shippingAndHandlingAmount
字段中提供。
首选语言
您可以通过在 Initiate Browser Payment 请求中提供 browserPayment.preferredLanguage
字段来设置 Klarna Pay Now 为向付款人显示的页面使用的首选语言。但是,对于 Klarna Pay Now,将仅支持 billing.address.country
的主要国语或英语。
退款
Klarna Pay Now 存在退款风险。如果付款人在与 Klarna Pay Now 的付款纠纷中抗辩成功,将在订单上创建退款交易。有关更多信息,请参阅退款交易。
如何解释交易结果
下表显示了在发起 Klarna Pay Now 后您可能遇到的可能出现的情景的交易响应代码。
Initiate Browser Payment 响应 |
具体含义... |
---|---|
response.gatewayCode=SUBMITTED result=SUCCESS |
使用响应中提供的 URL 重定向付款人。 |
Retrieve Transaction/Retrieve Order 响应 |
具体含义... |
response.gatewayCode=APPROVED result=SUCCESS |
付款成功。 |
response.gatewayCode= PENDING result=PENDING |
QNB ALAHLI 等待来自收单行的付款结果通知。稍后重试 RETRIEVE_TRANSACTION 或接收来自 QNB ALAHLI 的通知。 |
response.gatewayCode= CANCELLED result=FAILURE |
付款人已取消此付款的交互。为付款人提供尝试其他付款方式的选项。 |
response.gatewayCode= DECLINED or ACQUIRER_SYSTEM_ERROR result=FAILURE |
付款被拒绝。为付款人提供尝试其他付款方式的选项。 如果出现 ACQUIRER_SYSTEM_ERROR ,您可能需要询问收单行付款失败的原因,也可以重试 RETRIEVE_TRANSACTION 。 |
response.gatewayCode=TIMED_OUT result=FAILURE |
请将此情况视为被拒付款。QNB ALAHLI 将进行尝试以确保交易不成功或撤消交易。 |
Klarna Pay Now 订单 ID
对于批准的付款,QNB ALAHLI 将在字段 transaction.acquirer.additionalResponseData
中向您提供 Klarna Pay Now 分配给此订单的 ID。此信息对于您可能与 Klarna Pay Now 之间进行的直接通信可能很有用。
Web Hook 通知
如果您订阅了 QNB ALAHLI Web Hook 通知,您可能会收到有关奖金提供状态更新和退款的其他通知。
测试您的集成
QNB ALAHLI 提供允许您测试您的 Klarna Pay Now 集成的浏览器付款模拟器。