我一直想(徒勞!)得到PayPals SetPaymentOptions API功能正常工作,按照:https://developer.paypal.com/docs/classic/api/adaptive-payments/SetPaymentOptions_API_Operation/貝寶自適應支付SetPaymentOptions - 它的工作?
FWIW - 我知道下面是不是真正的JSON,但它的Perl的我正在創建的對象 - 在發送之前將其轉換爲JSON(與其將它全部放在一行上=相比,它更容易閱讀))
到目前爲止,我使用「支付」功能創建了初始付款(https://svcs.sandbox.paypal.com/AdaptivePayments/Pay):
{
requestEnvelope => {
detailLevel => "ReturnAll",
errorLanguage => "en_US",
},
actionType => "PAY",
currencyCode => "USD",
receiverList => {
receiver => [
{
amount => 65,
email => '[email protected]',
paymentType => "GOODS",
invoiceId => "test"
},
{
amount => 15,
email => '[email protected]',
paymentType => "GOODS",
invoiceId => "test 2"
}
],
},
returnUrl => 'http://xx.com/thanks.html',
cancelUrl => 'http://xx.com/cancel.html',
}
這創建它很好,我得到返回payKey蠻好的。當我嘗試通過SetPaymentOptions添加運費/單位價格/稅等時,問題就開始了。下面是一個例子請求我做:
{
payKey => $json_returned->{payKey},
requestEnvelope => {
detailLevel => "ReturnAll",
errorLanguage => "en_US",
},
receiverOptions => [
{
customId => "foo123",
receiver => {
email => '[email protected]'
},
invoiceData => {
item => [{
name => "ITEM1",
price => 50,
itemCount => 2,
itemPrice => 25,
}],
totalTax => 5,
totalShipping => 10,
},
SenderOptions => {
addressOverride => 1,
requireShippingAddressSelection => 1
}
}
]
}
我那麼如果這一切得到了保存好,通過使用PaymentDetails要求搶回該事務看到(https://svcs.sandbox.paypal.com/AdaptivePayments/PaymentDetails)
這總是回來沒有運費,稅金,單位數量等等。我對於發生了什麼事情感到非常失望 - 因爲如果我要改變(例如)第二次請求中的單位數量或交貨價格......它給了我一個數字不匹配的錯誤!所以它必須承認它 - 但只是沒有做任何事情
我真的在我的智慧結束在這裏(我希望他們快點,並獲得REST API完成 - 因爲他們看起來更有希望這...但現在,我必須湊合一下我們在這裏與自適應付款)
UPDATE:
這是你的意思問候運行ExecutePayment
什麼?
my $pass_in_params = {
payKey => $json_returned->{payKey},
requestEnvelope => {
detailLevel => "ReturnAll",
errorLanguage => "en_US",
},
actionType => "CREATE"
};
嗬 - 終於得到它的工作!根據安德魯斯的信息,我沒有看到ExecutePayment
請求中的運費/單位/稅款等原因是因爲我們還沒有將它們發送到付款頁面(並且在付款完成之前您無法獲取它) )。使用沙盒,您可以登錄到測試帳戶,並完美地查看所有單位等。
您是否在調用PaymentDetails之前使用ExecutePayment完成支付? –
哦,你打電話給** SetPaymentOptions **之後必須這麼做嗎? –
@AndrewAngel我試着在'SetPaymentOptions'請求後執行'PaymentDetails'請求,但是我得到一個錯誤:這個支付請求必須由發送者在test.cgi第16行授權。我傳入:'payKey => $ json_returned - > {payKey},requestEnvelope => {detailLevel =>「ReturnAll」,errorLanguage =>「en_US」}'...我錯過了什麼?謝謝! –