使用Klarna支付, 从发起付款到显示小部件到创建订单完整详细流程

本文记录了Klarna支付接口的完整调试过程,Klarna是欧洲流行支付方式,有多种支付类型。介绍了创建测试账户步骤,以及付款端到端流程,包括发起付款、结帐显示、创建订单等,还提及各步骤的请求参数、测试数据及注意事项,以提高接入效率。

Klarna是欧洲流行的一种支付方式, 支付方式有立即,以后支付,分期付款
我们通过立即支付的方式调通支付接口
klarna的文档是英文的, 语言不通和客服沟通费劲, 记录下完整调试过程, 以便后来人提高接入效率.

开始之前创建一个新的测试帐户(有测试账户的人忽略此部分)。
要创建新的测试帐户,请执行以下步骤:
klarna 测试之前

  1. 单击 Klarna Docs 导航栏中的商户门户​​按钮。
  2. 选择您的凭证所在的地区(例如,🇪🇺 欧洲)。
  3. 选择Playground作为环境。
  4. 点击注册。
  5. 输入您的电子邮件地址,然后单击注册。您将在此地址收到一封确认电子邮件。
  6. 打开确认电子邮件,然后单击激活帐户。
  7. 完成设置您的帐户:接受条款和条件。选择一个新密码。输入你的名字。登录到商家门户。
  8. 使用 Klarna 进行

付款的端到端流程包括三个主要步骤

一. 发起付款

会创建一个会话,用于识别向 Klarna 的购买。

当您的客户想要使用 Klarna 付款时,您必须打开一个付款会话并在对端点的POST请求中共享购物车详细信息。{apiURL}/payments/v1/sessions在该请求中,您还指定付款是一次性的还是经常性的。

一旦您开始付款会话,它会保持打开状态 48 小时或直到您下订单。您还可以发送单独的POST请求以取消会话。

base URL - 实时(生产)
欧洲: https://api.klarna.com/
北美: https://api-na.klarna.com/
大洋洲: https://api-oc.klarna.com/

base URL - 测试(操场)
欧洲: https://api.playground.klarna.com/
北美: https://api-na.playground.klarna.com/
大洋洲: https://api-oc.playground.klarna.com/
在这里插入图片描述

请求发送参数

{
  "intent": "buy",//一次性支付
  // "intent": "tokenize",//结帐时无需付款的定期付款
  // "intent": "buy_and_tokenize",//结帐时付款的定期付款
  "purchase_country": "US",
  "purchase_currency": "USD",
  "locale": "en-US",
  "order_amount": 10,
  "order_tax_amount": 0,
  "order_lines": [{
    "type": "physical",
    "reference": "19-402",
    "name": "Battery Power Pack",
    "quantity": 1,
    "unit_price": 10,
    "tax_rate": 0,
    "total_amount": 10,
    "total_discount_amount": 0,
    "total_tax_amount": 0,
    "image_url": "https://www.exampleobjects.com/logo.png",
    "product_url": "https://www.estore.com/products/f2a8d7e34"
  }]
}

locale Klarna 小部件上显示的信息语言。了解有关在 API 调用中使用语言环境的更多信息。
purchase_country 进行购买的国家/地区。了解有关受支持国家/地区的更多信息。
purchase_currency 向客户收取费用的货币。了解有关支持货币的更多信息。
order_amount 订单的总价格,包括税费和折扣。
order_lines 采购中订单行的详细信息。
intent 付款会话的目的。
在这里插入图片描述
成功会返回:client_token(下一步要用!)
另外要注意payment_method_categories会返回支持的付款方式pay_now pay_over_time``pay_later,
注意注意: 只有结果有返回的方式才能显示小部件!
如果得不到你期望的方式, 请检查是否配置了收款信息!!!

二. 结帐显示

Klarna 付款方式并授权购买。

2.1显示klarna小部件
本地创建一个html文件,写入下方代码(记得改client_token), 保存浏览器打开


 <script src="https://x.klarnacdn.net/kp/lib/v1/api.js" async></script>
 <script>
   window.klarnaAsyncCallback = function() {
     Klarna.Payments.init({
       client_token: "上一步返回的client_token",
     });

     Klarna.Payments.load({
         container: "#klarna-payments-container1",
         payment_method_category: "pay_now",
       },
       function(res) {
       // 成功会返回 {show_form: true}
         console.log(res);
         console.debug(res);
       }
     );
  </script>

浏览器打开页面已经生成小部件
在这里插入图片描述 如果得不到你期望的小部件, 请检查是否配置了收款信息!!!

2.2 用户开始支付
前面生成了小部件你会发现没有下一步按钮, 其实按钮是需要你自己写一个,然后调起支付动作

  <button onclick="payHanle()">确定支付</button>
  <script>
    function payHanle() {
      Klarna.Payments.authorize({
        payment_method_category: "pay_now"
      }, {
        // "purchase_country": "SE",
        // "purchase_currency": "SEK",
        // "locale": "sv-SE",
      }, function(res) {
        // 用户支付成功回调
		// authorization_token: "b4bd3423-24e3",
		// approved: true,
		// show_form: true
		if (res.approved) {
			// 用户支付成功之后调用成功接口,进入下一步创建订单
		}
      })
    }
  </script>

在这里插入图片描述
测试支付需要填写正确测试数据

测试直接借记
要从客户的角度测试直接借记支付流程,请使用 IBAN 格式的号码。例如,以下示例 IBAN 编号适用于德国的测试商店:DE1152 0513 7351 2071 0131。
测试信用卡
要从客户的角度测试卡支付流程,请在加载的 Klarna 小部件中使用以下卡详细信息:

学分号:4111 1111 1111 1111
CVC: 123
到期日期: 12/28或 MM/YY 格式的任何其他未来日期
触发3-D 安全流程的卡号:4687388888888881
身份id
Field Name Field Value
芬兰 Henkilötunnus 190122-829F
挪威 Fødselsnummer 01087000571
瑞典 Personnummer 410321-9202

漂亮国测试数据

/Privateperson.
/ApprovedDenied
Date of Birth10-07-197010-07-1970
First NameTestTest
Last NamePerson-usPerson-us
StreetAmsterdam AveAmsterdam Ave
House number509509
ApartmentApt 214Apt 214
Postal Code1002410024
CityNew YorkNew York
RegionNYNY
Phone Number31066833123106354386
Emailcustomer@email.uscustomer+denied@email.us
OTP(Random 6-digit different from 999999)123456123456

更多测试数据
更多测试地址数据

创建订单

使用上一步中的授权付款并创建订单。
要为一次性付款创建订单,请将POST请求发送到{apiUrl}/payments/v1/authorizations/{authorizationToken}/order 端点并包含authorization_token在路径中。

例如,如果authorization_token是b4bd3423-24e3,则将您的请求发送到{apiUrl}/payments/v1/authorizations/b4bd3423-24e3/order端点。
请求参数是前面创建sessions时候带的参数
在这里插入图片描述
成功之后回调下面的参数

{
    "order_id": "3eaeb557-5e30-47f8-b840-b8d987f5945d",
    "redirect_url": "https://payments.klarna.com/redirect/...",
    "fraud_status": "ACCEPTED",
    "authorized_payment_method": "invoice"
}

服务端代码

await axios({
  method: 'post',
  url: `${appConfig.klarna.baseUrl}/payments/v1/authorizations/${params.authorizationToken}/order`,
  data: {
  "intent": "buy",//一次性支付
  // "intent": "tokenize",//结帐时无需付款的定期付款
  // "intent": "buy_and_tokenize",//结帐时付款的定期付款
  "purchase_country": "US",
  "purchase_currency": "USD",
  "locale": "en-US",
  "order_amount": 10,
  "order_tax_amount": 0,
  "order_lines": [{
    "type": "physical",
    "reference": "19-402",
    "name": "Battery Power Pack",
    "quantity": 1,
    "unit_price": 10,
    "tax_rate": 0,
    "total_amount": 10,
    "total_discount_amount": 0,
    "total_tax_amount": 0,
    "image_url": "https://www.exampleobjects.com/logo.png",
    "product_url": "https://www.estore.com/products/f2a8d7e34"
  }]
},
  auth: {
    username: appConfig.klarna.authUsername,
    password: appConfig.klarna.authPassword
  },
  headers: {
    'Content-Type': 'application/json'
  },
  withCredentials: true
})
  .then(async response => {
    const data = response.data;
    console.log('支付成功回调', data);
    if (data.error_code) {
    // 失败
      return res.json(commonResult.fail());
    } else {
      return res.json(commonResult.success());
    }
  })
  .catch(error => {
    console.log(error.response);
  });

查看klarna后台订单

进入后台看到产生的订单了, 点进去能看到你传进来的商品详情
在这里插入图片描述

完成! 点赞! !

印染厂生产仓储信息系统 需求分析说明书 一. 系统背景 我国经济经历经多年高速增长后,正处于崭新的发展阶段,人民生活水平普遍提高,国家不断加强环境保护和节能减排的政策力度。同时2008年下半年源自发达经济体的金融危机,愈演愈烈,已成为一场经济危机,并向全球蔓延。在这样的国际和国内经济背景下,我国经济发展面临着严峻考验,特别是以出口导向型劳动密集型产业面临的形势更为严峻:一方面劳动力、原材料、污水处理等成本上升,另一方面出口订单减少。在这种情况下,沿海某纺织印染集团公司的决策层经过分析和讨论,审时度势做出战略决策:与时俱进,调整和优化产品结构,提高产品附加值、推行精细化管理和集约化经营。 目前,根据集团的总体规划,将在印染分厂逐步建立一系列信息化系统,其中《生产仓储信息系统》,将实现原坯布和成品仓储管理信息化,达到精细化、精确化和高效化管理,达到最大限度降低仓储管理成本和提高仓储管理效率的目的。 本文将对《生产仓储信息系统》的实际需求进行分析,并制定出解决方案。 二. 系统目标 《生产仓储信息系统》主要实现以下目标:  实现坯布库存摆放和出入的信息化  实现灵活多样查询和统计  实现有效可靠的用户权限管理和系统的安全性 三. 业务描述 对纺织布匹进行印染加工是印染企业主要生产内容。布匹是印染厂的最主要生产物资,未经印染加工布匹被称为坯布(即纺织企业出厂产品),经过印染企业加工的布匹被称为成品布(即直接可在市场上销售的布匹)。 坯布进入印染厂后,首先存放在坯布仓库中,需要生产时,从坯布库中出库,供生产使用,本系统主要内容为坯布库的出入库管理和位置摆放管理。 (一) 坯布库管理  库存初始数据设置 在刚刚开始使用本系统时,可能仓库中已有一定的坯布,这时需要录入库存的初始量。库存初始信息包括: 规格、数量(米)、登记时间(年月日),是否确定。 对初始信息可以设置、修改和确定。 一旦确定之后就不可以再进行设置和修改。  坯布出入库 坯布出入库即将坯布提出坯布库和进入坯布库。仓库管理人员对每一次出入库情况做详细记录,每天下班前结账,结账以后的出入记录不可以再修改和变化,同时向上级部门报坯布库结存日报表和日出入库明细清单。 出入库记录信息包含如下内容: 记录号、出入类型(出库、入库、盘盈、盘亏)、时间(年月日)、客户、坯布厂家、规格、数量(米)、位置、登记人、登记时间(年月日时分秒)、是否已结账、结账人、结账时间(年月日时分秒)、是否注销,注销人、注销时间。 坯布出入库管理主要包括: 新增入库,即新建一条坯布入库信息,记录内容 包括:记录号、时间(年月日)、客户、坯布厂家、规格、数量(米)、位置、登记人、登记时间(年月日时分秒) 修改出入库记录:对入库信息进行修改(记录号不可以修改),登记人和登记时间重新记录,结账以后的信息不可以修改。 注销出入库记录:对作废的、错误的出入库记录注销,表示不再使用,同时记录注销人和注销时间,结账以后的信息不可以注销。 结账:对选择日期当天的出入库记录进行结账,经结账记录加结账标志,同时记录结账人和结账日期。结账以后的信息不可以二次结账。 生成日报:依据当日结账出入库记录和上日结存,生成当日库存日报,日报表样如下: 坯布库存日报表 部门:坯布库 报表人:XXX 日期:2009-6-28 规格 数量 上日结存 日入库 日出库 日结存 合计 生成日出入库明细:将当日结账出入库记录生成日出入库明细单,样表如下: 坯布日出入库明细单 部门:坯布库 报表人:XXX 日期:2009-6-28 记录号 规格 客户 坯布厂家 出入类型 数量 合计  坯布库存月报 坯布库存月报表 部门:坯布库 报表人:XXX 月份:2009-6 规格 数量 上月结存 月入库 月出库 月结存 合计  坯布库存年报 坯布库存年报表 部门:坯布库 报表人:XXX 年份:2009 规格 数量 上年结存 年入库 年出库 年结存 合计  坯布库存盘点 库存盘点即对库存坯布进行实物清点,并进行帐实核对,并生成盘点报表。 在盘点之时,停止所有坯布出入库,未结帐的数据全部结账,生成盘点表: 坯布库存盘点表 部门:坯布库 盘点日期:2009-8-20 规格 账面库存量 实际数量 盈亏数量 盘点人 盘点表中需要填入的信息是实际数量、盈亏数量、盘点人。 根据盘点表生成盘点报表: 坯布库存盘点报表 部门:坯布库 盘点日期:2009-8-20 规格 账面库存量 实际数量 盈亏数量 最后应当盈亏入账,使帐实相符,具体在出入库记录中添加记录,出入类型为盘盈或者盘亏。  坯布库查询 可以按客户、规格、出入库日期、出/入库、位置、是否结账、是否注销、登记人等条件灵活地组合查询出入库记录。 (二) 系统的安全要求 本系统的用户及权限 管理员:能够进行系统的用户管理和维护,以及为用户分配权限。 其他用户:等够操作权限范围内的业务。 用户管理 任何用户必须经过权限分配和登录方可进入系统进行操作,任何用户操作都不能超越所拥有的权限。 密码维护 任何用户可以且仅能修改自己的密码 四. 系统功能划分 生产仓储信息系统将实现面向所有用户的统一操作平台,不同的业务功能,通过该平台实现统一登录统一管理,具有内在联系业务之间数据共享,尽可能避免重复操作。 (一) 安全子系统  用户管理 系统自带一个管理员用户,可以进行用户信息管理,负责对系统用户信息维护,及用户的权限分配。具体功能描述如下: 可以新建用户信息:用户ID、用户名称,密码由系统默认“123456”。 可以修改用户信息(不含密码)和删除用户信息,删除用户时同时删除该用户所拥有的权限。  用户登录 所用的系统用户,必须通过登录验证方可进入系统。如果用户不存在或者密码错误应当返回登录页面,并给用户相应提示。 未经登录的用户直接访问需要登录后才能访问的url时,系统应等够阻止。  用户登录后的操作菜单(首界面) 用户登录系统后所看到的操作菜单应为用户拥有的权限范围内的菜单。 (二) 基础信息子系统  客户信息维护 根据生产需要输入和维护必要的订单编号信息,内容为订单编号,客户名称等。  规格维护 根据生产需要录入和维护规格信息,内容为规格名称等。  位置代码维护 位置代码是指在物品所在仓库位置的编号,本功能即对位置代码进行定义和维护。 位置代码为5位编码,规则:仓库代号+区号+排号+列号,其含义如下: 仓库代号:R-坯布库 P-成品库 区号:00-99 排号:0-9 列号:0-9  坯布厂家维护 对坯布厂家信息进行录入和维护。  初始库存设置 可以对初始库存进行录入和修改,无误之后可以对初始库存进行确定,确定之后不再可以新增和更改。  盘点开关设置 进入本功能模块,在非盘点期间可以进行开始盘点操作,在盘点期间可以进行结束盘点操作。 (三) 坯布库子系统  坯布出入库 非盘点期间 当日未结账之前,用户可以进行以下操作。 直接录入有关坯布出入库信息:出入类型(出库、入库、盘盈、盘亏)、客户、坯布厂家、规格、数量(米)、位置;系统自动生成记录号,并记录出入库日期、登记人姓名、登记人操作时间。 信息录入之后用户可以进行修改和注销和取消注销,但记录号不可以修改。 当日结账之后,仅可以查看出入库数据,不可以录入和修改、注销。 在盘点期间 不可以进行新增出入库信息,可以修改和注销现有未结帐信息,可以取消未结帐注销信息。  出入库结账 在非盘点期间 可以结账,即对选择某一日的出入记录进行扎结,结账之后不允许在已结账日期进行录入、修改、注销和结账操作,仅可以查看。 在该模块,用户可以生成当日库存日报。 在盘点期间 可以进行盘点结账,盘点结账之后不再可以修改、注销和取消注销。  坯布库存盘点 在盘点期间 用户可以生成盘点表,可以在盘点表中录入实际库存数量,可以提交保存,也可以修改。 如果盘点结束或者盈亏已入账则不可以再录入和维护实际库存数量(即不可以修改盘点表)。 盘点结束后 可以生成盘点报表。  坯布盈亏入账 用户可以将最近一次盘点盈亏数据入账,即以盘亏和盘盈的形式增加库存出入信息,这些信息来源于盘点表。 (四) 查询统计子系统  坯布库查询 可以按客户、规格、出入库日期、出/入库、位置、是否结账、是否注销、登记人等条件灵活地组合查询出入库记录。  坯布库存月报  坯布库存年报 五. 系统环境 (一) 硬件环境  1)硬件平台 1、网络环境: 内部的局域网网速:局域网线路带宽为100M,工作站要求10M/100M,DB服务器为100M/1000M。 客户机(浏览器)外部接入网速不低于256kbps 2、服务器要求: DB服务器要求为高性能的PC服务器,配置最低要求(5个客户端):奔腾双核1.8GHz CPU,2G DDR2,160G HDD,100M/1000M NET,其他设备建议配备磁盘阵列备份与UPS电源。 WEB服务器要求为为高性能的PC服务器,配置最低要求:奔腾双核2.0GHz CPU,2G DDR,40G HDD,100M/1000M NET,其他设备建议配备磁盘阵列备份与UPS电源。 3、客户端要求: CPU频率在1.8GHZ/内存256M/硬盘20G以上的PC机,其中显示器建议可正常上1024×768分辨率。 (二) 软件平台  1)软件平台 服务器操作系统:WINDOWS XP/ WINDOWS 2000 Server 数据库系统:sqlserver 2005 JAVA平台:JDK1.5 J2EE1.4 WEB服务器: Tomcat 6.0 客户端操作系统: WINDOWS2000、WINDOWS XP 客户端浏览器:IE7.0或以上版本  2)系统开发工具 Eclipse 3.3+MyEclipse 6.5 + Tomcat6.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢泽的网络日志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值