首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加载(多个)定义的Klarna支付方法?

如何加载(多个)定义的Klarna支付方法?
EN

Stack Overflow用户
提问于 2020-10-15 14:41:19
回答 1查看 750关注 0票数 2

我正在构建一种Klarna支付的沙箱集成(目的是让它在原则上正常工作,然后将逻辑实现到一个真正的商店中)。在docu中描述的第一步,会话创建已经起作用了。现在,我正在尝试显示Klarna小部件。

文档中的示例显示了如何加载一种支付方法(pay_later /In发单)。

代码语言:javascript
复制
Klarna.Payments.load({
    container: '#klarna-payments-container',
    payment_method_category: 'pay_later'
  }, function (res) {
    console.debug(res);
})

我也尝试过pay_now,但是它没有工作(页面上的消息“支付方法不可用”,res对象中的{show_form: false} )。实际上,我想看一张有三种付款方式的表格:pay_nowpay_laterpay_over_time

我看了一下文档 of load()。我的期望是找到一个像payment_method_categories这样的参数。但是这个方法只有payment_method_category,它需要一个字符串.

如何获得可使用和加载的Klarna支付方法的定义列表?

可能有些设置位于Klarna后端/ "control“(游乐场)中,或者需要一个API调用来使方法可用。如果是的话,需要做些什么,如何做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-25 14:25:42

Klarna付款文档有点混乱,或者我只是误解了它。无论如何,我想,这个小部件提供了(完整)表单,并且通过遵循它的步骤,我将得到支付表单。这是错误的。小部件只显示包含有关支付方法(-s)的信息的块(-s)。实际表单(单选按钮和用于authorize调用的一个或多个按钮等)实施者关心的问题。

要获得多个定义的Klarna支付方法,需要执行以下步骤:

1这个(测试)商人帐户的方法需要被Klarna激活。

会话初始化调用 (POST /payments/v1/sessions)的响应中列出了可用的方法:

代码语言:javascript
复制
{
    "session_id": "...",
    "client_token": "...",
    "payment_method_categories": [
        {
            "identifier": "direct_bank_transfer",
            ...
        },
        {
            "identifier": "pay_later",
            ...
        },
        {
            "identifier": "pay_over_time",
            ...
        },
        ...
    ]
}

2将单个支付块加载到单独的HTML容器中:

代码语言:javascript
复制
<script>
window.klarnaAsyncCallback = function () {
    Klarna.Payments.init({
        client_token: CLIENT_TOKEN
    });
    Klarna.Payments.load(
        {
            container: '#klarna-payments-container1',
            payment_method_category: 'pay_later'
        },
        function (res) {
            console.debug(res);
        }
    );
    Klarna.Payments.load(
        {
            container: '#klarna-payments-container2',
            payment_method_category: 'pay_over_time'
        },
        function (res) {
            console.debug(res);
        }
    );
    Klarna.Payments.load(
        {
            container: '#klarna-payments-container3',
            payment_method_category: 'direct_bank_transfer'
        },
        function (res) {
            console.debug(res);
        }
    );
};
</script>
<div id="klarna-payments-container1"></div>
<div id="klarna-payments-container2"></div>
<div id="klarna-payments-container3"></div>

其结果应该如下所示:

就这样。没有提供可见的表单元素(意思是:它已经是正确的结果)。实现者负责表单,现在可以自由地创建和装饰定制的表单。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64374076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档