我正在尝试将自适应付款链式付款完全退还给发件人,但我被卡住了。我正在使用 CodeIgniter 和 Andrew Angell's awesome library 进行自适应支付。
我要退款的详细信息如下:(您可以在下面看到原始 xml 请求和响应)
Array
(
[Errors] => Array
(
)
[Ack] => Success
[Build] => 5472483
[CorrelationID] => 4d31bf900a109
[Timestamp] => 2013-03-20T09:45:02.585-07:00
[ActionType] => PAY_PRIMARY
[CancelURL] => http://my-cancel-url.com
[CurrencyCode] => TRY
[FeesPayer] => PRIMARYRECEIVER
[FundingTypes] => Array
(
)
[IPNNotificationURL] =>
[Memo] =>
[PayKey] => my-paykey
[PaymentInfo] => Array
(
[PendingRefund] => false
[RefundAmount] => 0.00
[SenderTransactionID] =>
[SenderTransactionStatus] => COMPLETED
[TransactionID] => my-transaction-id
[TransactionStatus] => COMPLETED
)
[PreapprovalKey] =>
[ReturnURL] => http://success-url-area.com
[ReverseAllParallelPaymentsOnError] => false
[SenderEmail] => [email protected]
[Status] => INCOMPLETE
[TrackingID] =>
[Receiver] => Array
(
[Amount] => 5.00
[Email] => [email protected]
[InvoiceID] =>
[PaymentType] => SERVICE
[Primary] => true
)
[XMLRequest] => <?xml version="1.0" encoding="utf-8"?><PaymentDetailsRequest xmlns="http://svcs.paypal.com/types/ap"><requestEnvelope xmlns=""><detailLevel>ReturnAll</detailLevel><errorLanguage>en_US</errorLanguage></requestEnvelope><payKey xmlns="">my-paykey</payKey></PaymentDetailsRequest>
[XMLResponse] => <?xml version='1.0' encoding='UTF-8'?><ns2:PaymentDetailsResponse xmlns:ns2="http://svcs.paypal.com/types/ap"><responseEnvelope><timestamp>2013-03-20T09:45:02.585-07:00</timestamp><ack>Success</ack><correlationId>4d31bf900a109</correlationId><build>5472483</build></responseEnvelope><cancelUrl>http://my-cancel-url.com</cancelUrl><currencyCode>TRY</currencyCode><paymentInfoList><paymentInfo><transactionId>my-transaction-id</transactionId><transactionStatus>COMPLETED</transactionStatus><receiver><amount>5.00</amount><email>[email protected]</email><primary>true</primary><paymentType>SERVICE</paymentType><accountId>7VYWTSCQKWPAL</accountId></receiver><refundedAmount>0.00</refundedAmount><pendingRefund>false</pendingRefund><senderTransactionId>7P642947V2872150G</senderTransactionId><senderTransactionStatus>COMPLETED</senderTransactionStatus></paymentInfo><paymentInfo><receiver><amount>4.60</amount><email>[email protected]</email><primary>false</primary><paymentType>SERVICE</paymentType><accountId>7UZSWUVKCU4UW</accountId></receiver><refundedAmount>0.00</refundedAmount><pendingRefund>false</pendingRefund></paymentInfo></paymentInfoList><returnUrl>http://success-url-area.com</returnUrl><senderEmail>[email protected]</senderEmail><status>INCOMPLETE</status><payKey>my-paykey</payKey><actionType>PAY_PRIMARY</actionType><feesPayer>PRIMARYRECEIVER</feesPayer><reverseAllParallelPaymentsOnError>false</reverseAllParallelPaymentsOnError><sender><email>[email protected]</email><accountId>Y2BSLXZ8DQYY2</accountId><useCredentials>false</useCredentials></sender></ns2:PaymentDetailsResponse>
)
当我尝试执行退款、提供付款 key 、交易 ID(我从上面的请求中获得)和发件人电子邮件(将获得退款)时,会出现此错误(您可以在下面看到原始请求和响应):
Array
(
[Errors] => Array
(
[0] => Array
(
[Receiver] =>
[Category] => Application
[Domain] => PLATFORM
[ErrorID] => 589061
[ExceptionID] =>
[Message] => The receiver [email protected] is invalid for this refund
[Parameter] => [email protected]
[Severity] => Error
[Subdomain] => Application
)
)
[Ack] => Failure
[Build] => 5472483
[CorrelationID] => 2a1630b772ee0
[Timestamp] => 2013-03-20T09:52:10.986-07:00
[EncryptedTransactionID] =>
[RefundFeeAmount] =>
[RefundGrossAmount] =>
[RefundHasBecomeFull] =>
[RefundNetAmount] =>
[RefundStatus] =>
[RefundTransactionStatus] =>
[TotalOfAllRefunds] =>
[Receiver] => Array
(
[Amount] =>
[Email] =>
[InvoiceID] =>
[PaymentType] =>
[Primary] =>
)
[RawRequest] => <?xml version="1.0" encoding="utf-8"?><RefundRequest xmlns="http://svcs.paypal.com/types/ap"><requestEnvelope xmlns=""><detailLevel>ReturnAll</detailLevel><errorLanguage>en_US</errorLanguage></requestEnvelope><currencyCode>TRY</currencyCode><payKey xmlns="">my-paykey</payKey><receiverList xmlns=""><receiver xmlns=""><amount xmlns="">1.00</amount><email xmlns="">[email protected]</email><paymentType xmlns="">SERVICE</paymentType></receiver></receiverList><transactionId xmlns="">1VL98806A27476639</transactionId></RefundRequest>
[RawResponse] => <?xml version='1.0' encoding='UTF-8'?><ns3:FaultMessage xmlns:ns3="http://svcs.paypal.com/types/common" xmlns:ns2="http://svcs.paypal.com/types/ap"><responseEnvelope><timestamp>2013-03-20T09:52:10.986-07:00</timestamp><ack>Failure</ack><correlationId>2a1630b772ee0</correlationId><build>5472483</build></responseEnvelope><error><errorId>589061</errorId><domain>PLATFORM</domain><subdomain>Application</subdomain><severity>Error</severity><category>Application</category><message>The receiver [email protected] is invalid for this refund</message><parameter>[email protected]</parameter></error></ns3:FaultMessage>
)
1
此外,当我不提供交易 ID 并将其余部分留给 PayPal 时,问题会改变(原始 XML 请求位于数组下方):
Array
(
[Errors] => Array
(
[0] => Array
(
[Receiver] =>
[Category] => Application
[Domain] => PLATFORM
[ErrorID] => 589036
[ExceptionID] =>
[Message] => The currency code is missing or doesn't match the code in the payment request
[Parameter] =>
[Severity] => Error
[Subdomain] => Application
)
)
[Ack] => Failure
[Build] => 5472483
[CorrelationID] => e3fc5e41040f3
[Timestamp] => 2013-03-20T10:02:29.233-07:00
[EncryptedTransactionID] =>
[RefundFeeAmount] =>
[RefundGrossAmount] =>
[RefundHasBecomeFull] =>
[RefundNetAmount] =>
[RefundStatus] =>
[RefundTransactionStatus] =>
[TotalOfAllRefunds] =>
[Receiver] => Array
(
[Amount] =>
[Email] =>
[InvoiceID] =>
[PaymentType] =>
[Primary] =>
)
[RawRequest] => <?xml version="1.0" encoding="utf-8"?><RefundRequest xmlns="http://svcs.paypal.com/types/ap"><requestEnvelope xmlns=""><detailLevel>ReturnAll</detailLevel><errorLanguage>en_US</errorLanguage></requestEnvelope><currencyCode>TRY</currencyCode><payKey xmlns="">AP-52A99028X8685964M</payKey><receiverList xmlns=""><receiver xmlns=""><amount xmlns="">1.00</amount><email xmlns="">[email protected]</email><paymentType xmlns="">SERVICE</paymentType></receiver></receiverList></RefundRequest>
[RawResponse] => <?xml version='1.0' encoding='UTF-8'?><ns3:FaultMessage xmlns:ns3="http://svcs.paypal.com/types/common" xmlns:ns2="http://svcs.paypal.com/types/ap"><responseEnvelope><timestamp>2013-03-20T10:02:29.233-07:00</timestamp><ack>Failure</ack><correlationId>e3fc5e41040f3</correlationId><build>5472483</build></responseEnvelope><error><errorId>589036</errorId><domain>PLATFORM</domain><subdomain>Application</subdomain><severity>Error</severity><category>Application</category><message>The currency code is missing or doesn't match the code in the payment request</message></error></ns3:FaultMessage>
)
1
如您所见,我已经提供了 CurrencyCode,发件人的电子邮件地址也取自请求本身以防止输入错误。即使我硬编码它也不会改变情况。
你能帮我吗,我错过了什么?
谢谢,
最佳答案
检查 paypal here 说的文档
Turkish Lira TRY
NOTE:This currency is supported as a payment currency and a currency balance for in-country PayPal accounts only.
关于php - PayPal Adaptive Payments 退款问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15530133/