酒店

【国内&国际】有关支付逻辑的详细说明更新时间:2023/08/22

我们的产品大致分为两类:现付和预付,现付又可以分为两类:担保和非担保,非担保产品不需要支付,也不涉及取消,如果非担保产品调用取消接口,我们这边会返回成功但是不会做逻辑处理,贵方可以直接给用户提示取消成功。

下面具体说下现付担保和预付这两种需要担保、支付的产品,说的简单一些,这两种产品都是需要用户交纳一定的金钱的。

关于支付流程我们提供了两种方式,一种是创建订单的同时进行支付,这种需要在调用hotel.order.create接口时,将是否仅创建订单字段设置为false,或者不传入,默认即false,然后填入支付信息(关于支付信息的传入也有两种,涉及到我们的两种合作方式,稍后进行讲解),这时候调用接口后会出现两种情况,一种是创建订单并支付成功了,另一种是创建订单成功但是支付失败,支付失败后需要调用hotel.order.pay接口再次传入支付信息进行支付。判断支付失败需要查看两个地方,一个是创建订单接口返回值中PaymentMessage字段是否为空,不为空表示支付失败,为空则等待轮询hotel.incr.order接口,其会返回订单是否支付成功的信息。

另一种支付流程,是先成单再支付,即创建订单时将是否仅创建订单字段设置为true,这个时候不要传入支付信息,订单创建成功后会保留30分钟,此间需要调用hotel.order.pay接口传入支付信息,否则订单会自动取消,是否支付成功的逻辑同上,支付失败后的处理同上。

关于支付信息的传入,我们也提供了两种模式,一种是直接将用户的信用卡信息通过接口传给我们,我们会对信用卡进行扣款操作,信用卡信息传入方式参考hotel.order.create接口的说明,传入信用卡信息的情况下,请一定将是否已担保或已支付字段设置为false,选择仅创建订单的代理,在调用hotel.order.create时也一定将是否已担保或已支付字段设置为false

另一种支付信息的传入方式,是提供给开通了虚拟卡服务的代理使用的,开通虚拟卡服务的代理,再需要传入支付信息的时候,可以将是否已担保或已支付字段设置为true。开通虚拟卡的用户,在支付时请一定不要传入用户的信用卡信息。

关于虚拟卡,开通虚拟卡服务,意味着贵方可以自己对用户进行扣款,且不一定要求用户必须使用信用卡,贵方可以让用户使用支付宝、微信等其他方式支付。在需要调用我们接口支付时,只需要将是否已担保或已支付设置为true,我们就会对贵方的虚拟卡进行扣款。

特别注意:使用虚拟卡,在设置是否已担保或已支付为true时,一定确保已经对用户扣款成功,否则损失由贵方承担。