DEX455

CommercePayments 命名空间用例完全指南

课程介绍

CommercePayments命名空间完全指南:同步支付网关适配器(processRequest三阶段/PaymentsHttp/Capture+ReferencedRefund/自定义数据paymentsData/设置步骤)、异步适配器(双接口实现/processNotification四阶段:签名验证HMAC SHA256+解析eventCode+NotificationClient.record+GatewayNotificationResponse回执/Webhook URL配置/调试日志注意事项)、授权撤销服务(AuthorizationReversalRequest+Response/API端点/必填amount/OrderPaymentSummary金额更新)、令牌化服务(Tokenize requestType/createTokenizeResponse/GatewayTokenEncrypted加密推荐vs GatewayToken未加密/令牌化API/cardPaymentMethod参数)、替代支付方法(API51.0+/CashOnDelivery+Klarna+Direct Debit/记录类型/私有共享模型)及幂等性(duplicate参数/idempotencyKey)和GitHub参考实现。

课程章节

本课程共有 4 个章节

  • 1

    CommercePayments Namespace Use Cases

    第 278 页

    同学们,我们现在来看这一节内容,主题是Commerce Payments平台的审查与开发要点。这页Slide给出了一个整体的路线图,我们先快速过一遍,让大家心里有数。 首先,我们会一起审查Commerce Payments平台提供的步行表、用例和参考材料。步行表你可以理解成一份一步一步操作指南,它会带着我们走通关键流程;用例呢,就是真实业务场景的例子;参考材料里包含了各种技术文档。这些东西就像地图和说明书,帮我们在开发前就弄清楚整个平台的样貌和能力。 接下来,本章真正的硬核部分就开始了,一共要覆盖七个重点。 第一,构建支付网关适配器。这个适配器好比一座桥梁,作用是把Salesforce里的支付操作,准确地翻译并传递到外部支付网关,比如信用卡网络或者第三方支付机构。我们写的Apex代码,就得按照平台规范来实现这座桥。 第二,授权撤销。当一笔交易先做了资金授权,冻结了客户卡上的钱,但后来因为订单取消等原因没有请款,我们就必须主动发起一个撤销请求,把冻结的资金释放掉。这个功能很关键,直接关系到客户体验和资金安全。 第三,代币化,就是安全信用卡存储。我们不直接保存原始卡号,而是把卡信息发送给网关,换回来一个令牌。以后做支付只需传递令牌,这样就算数据泄露,外面也看不到真实的卡号,安全性大大提高。 第四,替代支付方法。除了传统信用卡,现在还有很多其他支付方式,比如电子钱包、本地支付等。我们需要让适配器也能支持这些替代方法,让支付选择更加灵活。 第五,处理支付和退款。这是核心业务逻辑,包括发起支付请求、处理响应,还有当顾客退货时发起退款操作。我们会学习如何用Apex稳妥地处理这些流程,保证数据一致。 第六,等性准则,也就是重复请求处理。网络不稳定的情况下,同一个支付请求可能连着发送了两次。等性机制会确保,即使收到重复请求,系统也只执行一次扣款,不会重复收费。要实现这一点,我们需要根据请求里携带的等性键来做判断。 第七,GitHub上的Payeezy网关示例实施。理论讲完后,我们会看一个实实在在的代码样板,Payeezy网关的例子。这个例子展示了如何把这些准则和步骤落地成可以运行的Apex代码,给你一个写自己适配器的参考。 好了,这就是这一页Slide要传达的全部概览。接下来我们再逐个深入,把这些点讲透,让你既能听懂,又能亲自动手实现。

    查看详情
  • 2

    Payment Gateway Adapters

    第 279 页

    同学们,我们今天聊聊Salesforce支付平台里的一个重要概念——支付网关适配器。你可以把它想象成一座桥,一边是Salesforce的支付系统,另一边是各种外部的支付服务商,比如支付宝、Stripe或者信用卡网关。这座桥的作用就是让Salesforce能顺利地和这些外部支付网关沟通,完成支付操作。 那么这座桥是怎么工作的呢?主要有两种模式:同步和异步,它们就像两种不同的办事方式。 第一种是同步适配器。它就像你打电话给朋友,直接问问题,然后等着对方马上回答。当Salesforce发起一笔支付时,同步适配器会把交易信息发送给支付网关,然后它就一直等着,直到收到网关返回的最终结果,比如支付成功或失败。只有交易在网关上真正成功了,Salesforce这边才会创建这笔交易记录。如果失败了,就什么都不会留下。这种方式的好处是实时反馈,但缺点是必须等,万一网关反应慢,整个流程就会卡住。 第二种是异步适配器。它更像是你发了一封邮件给朋友,然后你可以先去做别的事情,等朋友回复邮件了再处理。异步适配器会先立刻在Salesforce里创建一个状态为“挂起”的交易记录,然后把交易信息发给支付网关,就不管了。过一段时间,支付网关处理完了,会主动发一个通知回来,告诉Salesforce最终结果,这时Salesforce再更新那笔交易的状态为成功或失败。这种方式的好处是不会让用户干等着,系统可以继续做其他事,特别适合那些处理很慢或者需要人工审核的支付网关。 所以,支付网关适配器提供的这种灵活性,让Salesforce能支持各种不同类型的支付网关,不管它们是喜欢实时响应,还是喜欢事后通知。明白了吗?好,我们休息两分钟。

    查看详情
  • 3

    Payment Processing & Security

    第 280 页

    同学们,我们来看看支付处理里几个非常重要的概念。别担心,我会用大白话一个一个讲清楚。 先想象一下,你在网上买东西,下单后商家会先“冻结”你卡上的钱,这个叫,授权,。那如果订单取消了,这冻结的钱得解冻吧?没错,这个解冻动作就叫,授权冲销,,英文是 authorization reversal。简单说,就是把那笔暂时不能动的资金释放掉,回到你的卡里。 接下来讲个更常见的场景:你让网站记住你的信用卡号,但万一网站被攻击,卡号泄露了多可怕。所以就有了,令牌化,,也就是 tokenization。原理是把真实的信用卡数据换成一个没意义的“令牌”,就像代币一样。真数据存在安全的保险库里,系统里只存这个令牌。这样一来,商户就不用直接碰敏感的卡信息,也不用去费劲满足极其严格的 PCI 合规要求,负担轻多了。 再来看支付方式。除了传统的信用卡,现在越来越多的人用,替代支付方式,,比如 Klarna 这种先买后付,或者直接借记支付。从 Salesforce API 版本 51.0 开始,平台就支持这些非传统类型了。 下面得搞清楚,支付生命周期,。整个流程有几个关键动作: - ,授权,(Authorization):就是咱们刚才说的冻结资金,验证卡有效并且额度够。 - ,捕获,(Capture):真正把钱从卡里划走。授权和捕获可以分开,比如先授权,发货时才捕获。 - ,销售,(Sale):授权和捕获一步到位,适合即时服务或数字产品。 - ,无效,(Void):如果还没捕获,可以直接把授权取消掉,钱不会动。 说到这,有同学问:要是客户退货呢?那就是,退款,,支持全部退,也可以部分退,非常灵活。 最后,也是容易被忽视的,幂等性,。这个词听着怪,其实很简单:你因为网络问题同一个请求发送了两次,比如点付款按钮时卡了一下,点了两下,系统必须知道这其实是同一笔交易,不能重复扣款。怎么做到呢?每次请求带一个,唯一的幂等键,。服务端看到同样的键,就知道是重复请求,会直接返回之前的结果,不会再次执行扣款。这样就避免了双重收费的乌龙。 好了,今天关于支付的这些核心点就讲到这里。记住:授权冲销是解冻,令牌化保安全,支付生命周期分步骤,退款能部分,幂等键防重复。下节课我们接着聊其他内容。

    查看详情
  • 4

    Sample Implementation & Thank You

    第 281 页

    同学们,咱们来看这一页幻灯片,它讲的是一个特别实用的资源。 Salesforce 在 GitHub 上专门给咱们准备了一个公开的代码仓库,里面放着一个完整的支付网关实现例子,用的是 Payeezy 这个支付服务。整个例子里,代码都是组织在 CommercePayments 命名空间下的,是官方推荐的做法。 这个示例不光是把代码扔在那儿,它非常清晰地演示了三件关键的事: 第一,适配器要怎么配置,才能让 Salesforce 认出你的支付网关; 第二,支付处理的具体流程是怎么走的; 第三,跟外部网关通信时,请求和响应是按照什么模式来交互的。 所以啊,如果你以后需要为别的支付网关做集成,完全可以直接把这个 Payeezy 示例拿来当参照,照着它的结构去实现你自己的适配器,能少踩很多坑。 另外,Slide 下面还提到了一个文档,说如果你想看最完整的 Apex 类参考——比如网关适配器必须实现的接口、处理交易的那些方法、还有把卡信息转成令牌的令牌化服务——可以去查阅 CommercePayments Pace 文档。 我估计这里写“Pace”可能是笔误,其实就是指 CommercePayments 的 Apex Developer Guide,你到 Salesforce 开发者文档里搜索 CommercePayments 命名空间,就能找到这份详细的说明。 简单说,这一页就是告诉大家:已经有现成的代码示例和详尽的接口文档了,好好利用它们,可以大幅降低你自己开发支付集成的难度。好,这一页的重点就这么多。

    查看详情