PayPal payments(Braintree)REST API集成通过SAP PO和REST适配器简化
简介:
Braintree是PayPal为在线商店和电子商务应用程序提供的支付解决方案。Braintree提供了基于REST的API,客户和合作伙伴可以通过这些API建立与Braintree的集成,以处理各种形式的财务活动和流程。通常,这些API可以集成到客户端应用程序中,以基于restapi操作执行大量查询。本文的重点是提供如何通过sappi/PO中间件实现与Braintree中的这些api的集成的指南。实际上,这是一篇独特的文章,因为没有任何通过sapi/PO/PRO中间件与Braintree集成的现有文档或实现。在Braintree的支持下,通过该帐户可以获得集成所需的所有必要的Braintree相关信息。
Braintree沙盒URL:https://sandbox.braintreegateway.com/login
场景描述:
场景设置需要一个ABAP代理到REST同步场景。ABAP代理的触发器是销售订单创建点。消费者通过网上商店下订单,然后将订单转移到SAP ECC系统,并使用Braintree ID在线付款以创建销售订单。一旦创建了一个销售订单,就会触发一个输出类型,它通过传递Braintree ID作为输入来对sappro7.5进行ABAP代理调用。这个调用通过调用"Get"操作一对一地转发到Braintree进行查询。查询完成后,带有事务详细信息报告记录的响应将返回到SAP PRO 7.5,并一对一地映射到SAP ECC系统。一旦ABAP代理接收到这个XML响应,这用于触发入站FINSTA IDOC,该IDOC随后通过调用必要的功能模块来更新财务报表。
图1:ABAP代理调用Braintree REST API以检索TransactionDetailReport
开发
设置此场景涉及不同组件的开发,云服务器好用吗,但重点将放在与sapi/PO中间件相关的活动上。
1)消息:首先,Braintree不提供用于此集成的标准xsd,只提供要在响应消息中返回的示例XML消息。为了实现请求和响应消息的创建,我们做了以下工作:
a)请求消息:在接收REST API的一侧进行查询,预计将实现以下查询格式:
图2:查询Braintree REST API的示例请求
对Braintree的请求是一个查询,Braintree不提供结构。但是,仍然需要为ABAP代理生成创建请求消息,并以XML形式传递给BraintreeID,该消息将根据接收方REST通信通道上配置的XPATH表达式动态获取。
以下XSD是使用外部工具创建的请求消息,并导入SAP PRO7.5.
图3:导入请求XSD消息的结构
b)响应消息:为了创建响应消息,Braintree提供了将在查询中返回的示例XML响应消息。使用此XML结构,使用一个用于生成XSD的在线工具(例如:https://devutilsonline.com/xsd-xml/generate-xsd-from-xml). 一旦XSD被生成,来自Braintree的各种XML响应就会根据这个XSD进行验证,以确定它是否有效。一旦响应XSD消息被创建,它也被导入到SAP PRO 7.5
图4:导入的响应XSD消息的部分结构
注意:由于ABAP代理生成,啥是大数据,请求和响应结构都是XSD,云服务器那个好,这要求两个消息结构应该是相同的类型(或者都是作为中间件内的数据类型创建的,或者都是作为xsd导入的)
2)接口、消息和操作映射:这部分开发的细节将不提供,因为这只是标准的PI开发活动,对请求和响应消息进行一对一映射。
配置
关于配置,这部分的重点将放在接收器REST适配器上,由于其余设置是典型的PI目录相关活动。
rest适配器接收器通信通道:典型的rest适配器通道是使用接收器选项设置的,使用以下设置
i)常规选项卡中的默认设置
图5:rest适配器默认常规选项卡设置
ii)rest URL选项卡:以下设置根据REST API的url模式在该选项卡中提供和配置信息
url模式:https://api.sandbox.braintreegateway.com/merchants/$MERCHANT\u ID/transactions/$TRANSACTION\u ID
图6:Braintree REST URL配置
在本例中,merchantID是从Braintree端为这个设置创建的沙盒帐户获得的。查询中要使用的事务ID(BraintreeID)使用指定的XPath配置动态传递到如上所示的url。
注意:由于REST端点兼容HTTPS,需要上传证书,这由Braintree提供。
iii)REST操作:如下所示,HTTP操作值来源为"GET"
图7:查询TransactionDetailReport的REST操作
iv)数据格式:REST API预期返回的消息格式为XML,如下所示
图8:REST API请求和响应消息的消息格式
v)HTTP头:成功调用Braintree REST API,预计header设置如下
图9:Braintree REST API header参数
这是在SAP PI/PO/PRO中通过设置以下配置实现的
图10:SAP PI/PO/PRO配置header REST API header参数
授权header:授权header指定如上,带有在密钥前指定"Basic",这里的"Basic"表示用用户名密码对进行基本身份验证。配置中指定的密钥是"PUBLIC"的base64编码_密钥:私钥". 这些密钥可以在如下创建的Braintree帐户中获得:
图11:Braintree中的REST API公钥和私钥
单击上面的查看选项查看私钥并按如下所示传递,以获得用于授权头值的base64编码值。
图12:公钥和私钥base64编码
结论