在SAP Concur中,电子收据是收据的数字表示,包含收据图像和结构化数据。电子收据来自预先授权和受信任的商家,并通过我们的收据API(不是电子邮件)代表个人用户,他们已经在SAP Concur和商户之间预先连接了他们的帐户/配置文件。

开始

App Center新合作伙伴:您的公司必须与SAP Concur签订商业协议。如果您还没有与SAP Concur签订上述协议,请查看关于构建应用中心解决方案页面。

现有App Center合作伙伴:SAP Concur Platform团队将需要配置您现有的沙箱,以支持访问。你可以通过联系你的联盟经理

用户连接/认证

以下身份验证方法可用于获取访问令牌。认证需要密码赠款或授权赠款或一次性密码赠款:

应用程序中心流程-从SAP Concur Web /移动应用程序中心连接

  1. 要开始身份验证流,可以通过SAP Concur AppCenter接口获得一个请求(临时)令牌。
  2. 一个已登录SAP Concur用户点击App Center中的App列表上的Connect按钮,并授权您的应用程序发布数据。应用列表示例如下:

    App Center列表示例

  3. SAP Concur授权服务将用户重定向到您的登录页面。请按照应用中心设计指南创建一个web页面来侦听来自SAP Concur的HTTP GET请求。
  4. 重定向URI将包含idrequestToken参数。示例:https:// {partner-redirect-URI} ? id = 8568 a4cd - 8 ffc - 49 - d6 - 9417 be2d69aa075f&requesttoken = 5 l85ae5a - 426 f - 4 - d6f 8 - af4 c4b696b——08648
  5. 当您的应用程序收到重定向调用stripidrequestToken值,并在对SAP Concur Authorization服务的Post请求中使用这些值来获得官方的OAuth2accessTokenrefreshToken的用户密码授予地理知道
  6. 解码id_token获取值并将该值存储为用户id(见https://jwt.io).
  7. 访问令牌仅在一小时内有效。访问令牌应该缓存在内存中,并在使用后丢弃。
  8. 当用户成功完成登录/注册过程后,将以下内容与用户的配置文件一起存储在数据库中。
    • refresh_token:(36个字符,包括破折号)有效期为6个月,从签发日期和时间算起。
    • refresh_expires_in:这是Epoch时间格式,转换为UTC。
    • 地理位置:用于代表用户进行API调用。
    • :(36个字符,包括破折号)用户id重定向URI上提供的值。用户id将用于将收据发送到用户的SAP Concur帐户。

Web Flow -从合作伙伴的Web或移动应用程序连接

  1. 合作伙伴App-User点击链接一致合作伙伴网站或移动应用程序中的按钮。示例如下:

    例如,App Center合作伙伴可能会在自己的网站上展示什么内容,让他们的用户可以使用网页流将他们在合作伙伴的用户帐户与他们在Concur的帐户连接起来。

  2. 您的应用程序将调用SAP Concur Authorization服务。
    例子:/ oauth2 / v0 /授权吗?客户端\ _id = {your-app-clientId}定向\ _uri = {partner_redirect_URI}响应\ _type =代码
  3. SAP Concur Authorization服务将提示用户两个选项:“用户名/密码”或“向我的电子邮件发送链接”。

    当用户选择将他们在合作伙伴站点上的帐户与他们的Concur帐户连接时,将提示用户进行Concur身份验证。他们有两个选择,发送一个链接到我的电子邮件,或输入他们的用户名验证。

  4. 处理用户名/密码选项:
    • 当用户选择用户名/密码选项时,授权服务将提示用户输入他们的同意凭证。
    • 成功登录后,用户页面将被重定向到合作伙伴的重定向URI,查询参数包含一次性使用代码和用户的地理位置,该参数将用于获得正式的OAuth2accessTokenrefreshToken示例:https://{伙伴\ _redirect \ _URI} ?{地理定位}代码=代码- 964 - c24ea - 9200 - 45 - e7 - a5ae - 15 - e9cef0d445
  5. 处理电子邮件选项:
    • 电子邮件选项是为不想使用密码或没有密码的用户设计的,例如单点登录(SSO)用户。
    • 如有需要,请发送邮件SAP Concur电子邮件地址(email1)。
    • 当用户点击电子邮件中的“用Concur签到”链接后,他/她将被重定向到合作伙伴的重定向URI,查询参数包含一次性使用代码和用户的地理位置,该参数将用于获得正式的OAuth2accessTokenrefreshToken示例:https://{伙伴\ _redirect \ _URI} ?{地理定位}代码=代码- 964 - c24ea - 9200 - 45 - e7 - a5ae - 15 - e9cef0d445

    示例如果用户选择发送一个链接到我的电子邮件发送的电子邮件。

  6. 当您的应用程序接收到带有代码和用户的GeoLocation的重定向调用时,去掉代码价值和用户的地理位置从重定向URI中使用到SAP Concur Authorization服务的Post请求,以获得正式的OAuth2accessTokenrefreshToken使用授权批准
  7. 解码id_token获取值并将该值存储为用户id(见https://jwt.io).
  8. 访问令牌仅在一小时内有效。访问令牌应该缓存在内存中,并在使用后丢弃。
  9. 将以下内容与用户的配置文件一起存储在数据库中。
    • refresh_token:(36个字符,包括破折号)有效期为6个月,从签发日期和时间算起。
    • refresh_expires_in:这是Epoch时间格式,转换为UTC。
    • 地理位置:用于代表用户进行API调用。
    • :(36个字符,包括破折号)用户id重定向URI上提供的值。用户id将用于将收据发送到用户的SAP Concur帐户。
  10. 可视化地向用户确认他们的合作伙伴app账户已经成功地与他们的SAP Concur账户相关联,并且在付款后收据将会被寄到用户的SAP Concur账户。

一次性密码流程-通过一次性密码(电子邮件)从合作伙伴网络或移动应用程序连接

  1. 合作伙伴App- user在合作伙伴的网站或移动应用程序中输入与SAP Concur配置文件相关的电子邮件地址。合作伙伴一次性密码(OTP)连接示例如下:

    应用中心合作伙伴可能在自己的网站上显示的内容,允许用户使用一次性密码流将他们在合作伙伴的用户帐户与他们在Concur的帐户连接起来。

  2. 用户点击链接/连接按钮。注意:用户可能有多个与他们的SAP Concur配置文件相关联的电子邮件。此方法使用的电子邮件地址应该是在用户的SAP Concur配置文件中作为Email1列出的电子邮件地址。
  3. 您的应用程序将调用SAP Concur Authorization服务来触发OTP电子邮件使用OTP格兰特地理知道

    当用户选择将合作伙伴站点上的帐户与他们的Concur帐户连接起来后,使用一次性密码流为用户提供Concur身份验证提示。

  4. 用户在电子邮件中单击“用Concur登录”链接后,他们将被重定向到合作伙伴的重定向URI,该URI带有一个包含一次性令牌的查询参数otl将用于获得官方的OAuth2accessTokenrefreshToken
    例如:https://{伙伴\ _redirect \ _URI} otl = 7 add4621f00b47e1aa2d8a61739c97e6
  5. 当应用程序接收到带有一次性令牌的重定向调用时,从重定向URI中去除令牌值,并在对SAP Concur Authorization服务的Post请求中使用该令牌,以获得正式的OAuth2accessTokenrefreshToken使用OTP格兰特地理知道
  6. 解码id_token获取值并将该值存储为用户id(见https://jwt.io).
  7. 访问令牌仅在一小时内有效。访问令牌应该缓存在内存中,并在使用后丢弃。
  8. 将以下内容与用户配置文件一起存储在数据库中。
    • refresh_token:(36个字符,包括破折号)有效期为6个月,从签发日期和时间算起。
    • refresh_expires_in:这是Epoch时间格式,转换为UTC。
    • 地理位置:用于代表用户进行API调用。
    • :(36个字符,包括破折号)用户id重定向URI上提供的值。用户id将用于将收据发送到用户的SAP Concur帐户。
  9. 可视化地向用户确认他们的合作伙伴app账户已经成功地与他们的SAP Concur账户相关联,并且在付款后收据将会被寄到用户的SAP Concur账户。

发布电子

可以找到Getting Started with Receipts v4文档在这里

  • 选择一个支持凭证类型最适合您的行业和检索列表模式可用的收据类型。
  • 为了确保使用正确的端点url,最安全的做法是在每个请求之前检查服务索引。得到服务指数
  • 如果你的应用程序当前生成一个接收图像(.png, .jpg, .tif, .pdf或其他图像文件),你可以将其包含在SAP Concur的帖子中。
  • SAP Concur为没有提供收据映像的合作伙伴生成标准收据。
  • SAP Concur会在标准生成的收据上显示您的应用程序Logo(尺寸为100x100px)。

付款后寄出电子收据

  1. 为正在使用的用户获取新的访问令牌刷新格兰特
  2. 您将需要用户Id之前存储在用户的配置文件中,以代表他们张贴收据。
  3. 邮寄收据使用邮政收据端点。
  4. 你应该储存concur-correlationid和来自响应头的位置链接,即使是成功的响应,这将有助于在用户的SAP Concur帐户丢失收据的情况下提供支持。

令牌管理

刷新令牌

  1. 属性在代表用户进行API调用之前,将获得一个新的访问刷新格兰特
  2. 一个refreshToken有效期为六个月。
  3. 下面的元素用新的访问令牌返回,替换之前在数据库中存储的用户值:
    • refresh_token(替换)
    • refresh_expires_in(替换)
  4. 如果用户六个月未登录,刷新令牌将过期,用户的合作伙伴帐户和SAP Concur帐户将断开链接。

迁移令牌(仅适用于现有合作伙伴/现有应用程序)

使用已弃用的/net2/oauth2框架的现有应用程序需要移动以支持新的oauth2承载令牌。

申请将需要迁移他们的现有用户已经连接到它,以获得新的OAuth2令牌,而不需要用户重新授权。这可以通过将旧的访问令牌交换为新的刷新令牌来实现。

  1. 获取应用程序令牌客户端证书授予
  2. 获得应用程序令牌后,通过调用ExchangeRefreshToken端点。
  3. 使用新的刷新令牌获取新的访问刷新格兰特
  4. 解码id_token获取值并将该值存储为用户id(见https://jwt.io).
  5. 访问令牌仅在一小时内有效。访问令牌应该缓存在内存中,并在使用后丢弃。
  6. 将以下内容与用户的配置文件一起存储在数据库中。
    • refresh_token:(36个字符,包括破折号)有效期为6个月,从签发日期和时间算起。
    • refresh_expires_in:这是Epoch时间格式,转换为UTC。
    • 地理位置:用于代表用户进行API调用。
    • :(36个字符,包括破折号)用户id重定向URI上提供的值。用户id将用于将收据发送到用户的SAP Concur帐户。

撤销令牌

撤销用户的refresh_token使用DELETE操作调用连接端点地理知道

地理知道

SAP Concur有多个数据中心

我们=https://us.api.concursolutions.com

EMEA =https://emea.api.concursolutions.com

中国=https://cn.api.concurcdc.cn

您需要知道用户所在的地理位置,并正确地调用api。如果您不知道或不知道用户的地理位置,那么您应该使用默认的US Base URI进行API调用https://us.api.concursolutions.com并期望一个地理位置错误,它将为用户返回正确的地理位置。有关更多信息,请参见基础uri

错误示例如下:

如果用户位于不同的数据中心,则返回HTTP错误的示例。