通过链接付款为开发人员付款
#java #payments #kotin

Pay By Link是Adyen为希望支持多渠道客户旅行并实施有效的Unified Commerce策略的开发人员和商人提供的工具。它们可以在线或店内创建,适用于不同的用例,但同时仍是一个平台的一部分。

在本文中..

..您可以阅读链接的付款,其用例和挑战,以及如何使用Adyen客户区域,REST API或SDK生成一个。

链接的薪水是什么

通过链接付款是一个独特的链接的生成,可以与购物者共享以付款。它具有三个基本功能:简单,灵活性和品牌。

简单开始:可以通过链接付款以不同的方式(客户区域,API)生成,并且需要一组最小的数据。

灵活性都有可能以许多不同方式共享链接,从社交媒体到消息传递应用程序,电子邮件或创建QR代码。

品牌也很重要:商人可以自定义付款页面(标题,徽标,背景),以保持品牌的身份和风格一直保持执行。

链接的付款不是什么

尽管易于使用,但链接付费无法替换结帐经验

从购物者的角度来看,重要的是要留在商家网站上,品牌并旨在最大化购物体验。虽然可以定制按链接托管页面付款(请参见上文),但它仍然代表了购物者购买产品或服务的站点之外的一步,涉及在不同主机之间重定向并在支付流程中添加潜在的摩擦。

按链接用例付款

通过链接付款在没有实时需求的情况下非常有效:购物者没有等待付款结果才能获得货物。例如,考虑B2B付款(例如发票)。

另一个有效的用例是可以离线付款,例如在结帐流程中出现问题,付款链接后来发送给购物者进行购买。

另一个是当购物者通过申请或聊天机器人与商店助手互动时:他们通过产品和选择进行指导,最终他们通过链接获得付款以完成购买。

这是一个success story,介绍了如何通过链接付费更安全的电话订单。

通过链接在客户区域付款

使用链接功能的最简单方法是在Adyen客户区域中创建链接。这是微不足道的(企业接受付款并不需要开发工作)和方便(通常由店内员工或客户支持团队采用)。

在客户区域登录,请确保已授予链接付费的角色已授予您的用户帐户,然后访问链接屏幕的创建付款。

Payment Links screen (Customer Area)

Create Payment Link screen (Customer Area)

我们尽力使所有这些领域都自我解释并提供明智的默认值。让我们看最有趣的人:

  • 链接类型:您可以定义该链接是否是一次性(只能执行一次付款),或者是否要使用几次,通常是因为它被发送到多个接收者。

  • 链接有效性:每个链接的到期日期都可以在创建期间设置。请注意,在生成链接后,总是有可能手动到期链接。

可选的其他详细信息部分可用于要求购物者在执行付款之前提供某些信息,这在联系方式(名称,电子邮件地址,送货地址)或发票信息(名称,名称,地址)。

自定义外观

通过创建主题来实现链接页面的Adyen付款的自定义。每个主题都定义页面的标题,要显示的徽标和背景图像。

Custom Themes screen (Customer Area)

通过链接API付款

尽管在客户区域中通过链接创建薪酬需要最少的工作,但开发人员通常需要对该功能进行颗粒状控制。这就是为什么按链接付款的原因,例如 Adyen平台中的所有功能都提供API。

API允许通过链接使用定制工作流来创建,管理和集成。这可以是自动化过程之后的链接,与聊天机器人的对话或消息平台上的通知。

Pay by Link REST API具有一个单个端点(/paymentLinks),该端点支持3 HTTP动词:post(创建一个新的),get(检索现有)和补丁程序(更新现有)。让我们看看。

通过链接创建新的薪水(邮政)

通过执行发布请求并提供带有付款属性的有效载荷来创建新的薪酬。这是一个提供基本信息的示例,但是API允许在必要时包含其他字段(BillingAddress,vireseaddress,价格和产品信息)。

curl -d '
{
  "amount" : {
     "currency" : "BRL",
     "value" : 10000
  },
  "countryCode" : "BR",
  "merchantAccount" : "myMerchantAccount",
  "reference" : "a121"
}
'
-H "Content-Type: application/json" 
-H "X-API-Key: #####" -X POST 
https://checkout-test.adyen.com/v69/paymentLinks

通过HTTP响应状态代码201和带有新创建的链接信息(即URL,有效期等)的响应机构确认链接创建的薪酬。

{
  "amount": {
    "currency": "BRL",
    "value": 10000
  },
  "billingAddress": {
    "city": "São Paulo",
    "country": "BR",
    "houseNumberOrName": "999",
    "postalCode": "59000060",
    "stateOrProvince": "SP",
    "street": "Roque Petroni Jr"
  },
  "countryCode": "BR",
  "expiresAt": "2022-09-21T09:48:49Z",
  "merchantAccount": "TestMerchantAccount",
  "reference": "a121",
  "reusable": false,
  "shopperEmail": "test@email.com",
  "shopperLocale": "pt_BR",
  "shopperReference": "12345678",
  "id": "XYZ123",
  "status": "active",
  "url": "https://test.adyen.link/XYZ123"
}

与Adyen SDKS合作

adyen积极维护几种特定语言的open source libraries,允许API提供的功能和产品简单而快速地集成。使用SDK开发人员可以从他们选择的环境和技术堆栈中创建薪酬。

例如,在Kotlin应用程序中使用 Java SDK ,开发人员只需要初始化客户端处理程序并调用相应的PaymentLinks创建方法。

// obtain client
private var client = Client(“#####”, Environment.TEST)
private var paymentLinks = PaymentLinks(client)

// create new Pay by Link
val createPaymentLinkRequest = CreatePaymentLinkRequest()
   .amount(
       Amount()
           .currency("BRL")
           .value(10000)
   )
   .merchantAccount(adyenConfig.merchantAccount)
   .reference(reference)
   .countryCode("BR")
   .billingAddress(
       Address()
           .street("Roque Petroni Jr")
           .postalCode("59000060")
           .city("São Paulo")
           .country("BR")
   )

val paymentLink = paymentLinks.create(createPaymentLinkRequest)

获取和补丁

链接API的付款还提供了一种访问(获取)有关链接现有薪酬的信息以及更新(修补)状态的选项。后者很有趣,例如,当需要手动链接付款时。

{
  "status": "expired"
}
' 
-H "Content-Type: application/json" 
-H "X-API-Key: #####" -X PATCH 
https://checkout-test.adyen.com/v69/paymentLinks/XYZ123

可以使用SDK再次完成此操作。

// obtain client
private var client = Client(“#####”, Environment.TEST)
private var paymentLinks = PaymentLinks(client)

// get paymentLink by id
var paymentLink = paymentLinks.retrieve(“00000001”)

// update paymentLink status
paymentLink = paymentLinks.update("000000001", 
UpdatePaymentLinkRequest().status(
  UpdatePaymentLinkRequest.StatusEnum.EXPIRED)
)

必须注意的是,GET端点返回付款链接的状态而不是付款状态。

工作样本

当然,通过链接功能向开发人员展示薪酬的最佳方法当然是创建一个工作的演示。这就是为什么我们在GitHub上开发了Kotlin Sample应用程序。

示例应用程序演示了如何创建付款链接并执行(模拟)实际付款以及检查其状态。它是使用Kotlin后端,Nodejs前端开发的,可以在GitPod上部署。

使用开源Adyen Java API集成了链接功能的付款。

Pay by Link demo app

可以随意克隆源代码,播放并为我们提供一些反馈或请求以进一步改进。

很有趣

与客户区域不同,链接API付款支持商人可用的所有付款方式。几乎没有付款需要额外的信息,例如将价格和产品信息表示为lineItems:只能通过API完成。

此外

挑战

尽管通过链接付费既容易又灵活,但它并非取代购物者结帐经验。在其范围之外采用此工具可能很诱人,但是开发人员应该记住将购物者重定向到不同页面的摩擦。从技术角度来看,处理不同的入口点的复杂性(结帐的开始,从付款页面重定向)。

也必须记住,基于链接的解决方案的付款应无论如何都应该集成Webhooks。 通知webhooks 提供付款的最终结果,必须消费以验证交易成功并可以确认购买。

结论

在正确的上下文中使用时,通过链接付款仍然是一种强大的工具。商人和开发人员应确保采用链接付款。在这种情况下,创建简单而强大的付款流可以通过小型开发工作带来巨大的竞争优势。