2017-03-09 92 views
0

我們需要通過PayPal進行參考交易,每月向客戶收取不同金額的賬單。 例如第一個月爲$ 30第二個月可能是$ 35第三個月可能是$ 25等貝寶參考交易結算協議

到目前爲止,這似乎是最好的辦法:https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/

我使用貝寶推薦的SDK從這個頁面:https://developer.paypal.com/docs/classic/api/nvpsoap-sdks/ 和使用ExpressCheckout方法。 (貝寶/作曲家通過安裝商戶-SDK-PHP)

我們有一個免費的貝寶企業賬戶。

通過沙盒測試我能:

  1. 獲得令牌(SetExpressCheckout) - 分類 - >數碼,billingAgreement,類型=銷售
  2. 着客戶的沙盒登錄PayPal
  3. 確認付款
  4. 重定向到我們的系統中(RETURNURL)
  5. 處理付款(GetExpressTocket + doExpressCheckout)

問題:

  • 是否貝寶企業賬戶不需要任何開關/狀態/升級對現場環境中啓用參考交易?

  • 您如何設置0美元的結算協議在本月晚些時候開出金額?當在步驟1中傳遞一個0量以上,並顯示

    錯誤

項目名稱,如果 提供項目類別是必需的量和數量,錯誤碼10003

這矛盾的文檔https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/#setting-up-a-billing-agreement-before-payment其中規定將金額設置爲0 ...? UPDATE:刪除設置$ itemDetails-> ItemCategory ='Digital';解決了$ 0金額問題。雖然我已經通過了BillingAgreement數據

//結算協議細節 $ billingAgreementDetails =新BillingAgreementDetailsType( 'MerchantInitiatedBillingSingleAgreement')甚至沒有返回

  • 結算ID; $ billingAgreementDetails-> BillingAgreementDescription = $ billingAgreementTxt; $ setECReqDetails-> BillingAgreementDetails = array($ billingAgreementDetails);

我知道這篇文章中有幾個問題,但我相信它們都與PayPal中「參考交易」的範圍有關。 我正在尋找關於方法和文檔中矛盾解釋的建議。(或者,如果我做錯了,然後高興地聽到它)

+0

在與Paypal支持交談後,他們表示Sandbox是越野車,而且參考交易在Sandbox上不起作用......不知道該怎麼想,並會繼續嘗試使用真實賬戶。 –

回答

0

要回答你的問題:

1)是否貝寶企業賬戶不需要任何開關/狀態/升級到在現場能參考交易環境?

如果您在致電參考交易時收到錯誤消息,可能是在您的帳戶中關閉了該設置。您需要聯繫PayPal業務支持團隊才能啓用它。

2)不返回帳單ID。

要設置帳單協議,您需要在SetExpressCheckout請求中傳遞paymentaction = authorization。如果您將paymentaction設置爲出售,您將無法設置結算協議。

+0

謝謝你的回答。第1點我意識到一旦在真實賬戶(getToken ...)上運行測試,它會返回類似的消息。基本上聯繫貝寶以激活參考交易。 - 2.當我回到這個問題時,我會測試賬單ID paymentaction =授權。感謝您的意見。 –

+0

更新:使用PayPal SDK(PHP通過作曲家)(merchant-sdk-php,sdk-core-php) - 我使用CreateBillingAgreement()返回一個BillingAgreementID。 No in sandbox still still get:[LongMessage] =>預先批准的付款未啓用。 ...沙箱中的設置被激活,所以支持PayPal ..有趣的樂趣。 –