Paypal自适应支付从IOS收到的支付密钥验证

时间:2014-08-18 16:58:53

标签: php ios paypal paypal-adaptive-payments

在我们的应用中,我们使用IOS MPL library进行并行付款。从IOS获得付费密钥后,当我尝试使用PHP应用程序验证它时,它显示以下错误:

 [error] => Array
        (
            [0] => ErrorData Object
                (
                    [errorId] => 540031
                    [domain] => PLATFORM
                    [subdomain] => Application
                    [severity] => Error
                    [category] => Application
                    [message] => You do not have permission to get these payment details
                    [exceptionId] => 
                    [parameter] => 
                )

        )

但如果我使用PHP自适应支付API创建并行付款,我可以验证付款密钥并获得正确的收据。


我发现当我尝试在PHP中创建并行支付时,它会要求我提供App ID,API用户名,API密码和API签名。但是当我们使用IOS MPL libarary时,它只是要求App ID。在沙盒模式下,我们总是使用相同的APP ID - APP-80W284485P519543T,这对所有(通用)都是相同的。那么应用程序将如何识别谁发出了呼叫?

当我使用PHP应用程序在沙箱模式下创建付款时,尝试使用不同的" API凭据验证交易",然后我收到相同的错误"您没有权限获取这些付款详细信息",我们在尝试使用IOS Pay键时收到这些信息。

1 个答案:

答案 0 :(得分:1)

以下是我从Paypal获得的回复: 这是通过MPL sdk库从发件人的iPhone应用程序制作的AP txn。 api来电者是发件人。

并行付款的收款人不同。

当接收方a / c中的一个发出payintails api呼叫时,他就是这个电话的呼叫者。因此,对于api呼叫者在paymentdetails api中可以查看的信息,几乎没有限制。 接收方a / c持有者将只能查看他的交易支路,因为他不是创建支付密钥的原始api呼叫者。

这就是为什么在paymentdetails API之后,您只能看到交易信息的一部分。


另外我问Paypal,如果MPL库中有一种方法可以定义商家的API凭证,可以在进行自适应支付而不是发件人的API时使用。他们说不,MPL库不是这样构建的。


最后,我使用IPN调用来解决问题。我没有通过验证从IOS设备获得的Pay键来更新数据库,而是我告诉IOS开发人员在自适应支付呼叫中发送IPN URL。然后通过IPN网址更新我的数据库。