在沙箱中玩並通過SetExpressCheckout設置週期性付款時(如文檔所述),我可以成功創建賬單協議並接收令牌。現在用戶按照如下鏈接https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout & token = [token to here],同意所有條款和條件等,他是自動重定向到SetExpressCheckout方法中提供的returnUrl,並且此標記值附加到returnUrl。從新PayPal獲取新訂閱通知
到目前爲止這麼好。現在的問題是 - 我可以依靠returnUrl會在任何時候被調用的事實嗎?例如,當由於某種原因用戶的瀏覽器拒絕或未能被重定向到指定的URL時會發生什麼?
據PayPal文檔我可以理解,您不能使用IPN通知您由用戶發起的新訂閱,但顯然IPNs是理想的選擇。當我編寫SetExpressCheckout請求時,我試圖提供notifyUrl,但它沒有被擊中。同樣的IPN適用於我用於一次性購買的「付款」方式。
是的,我知道我必須調用CreateRecurringPaymentsProfile一旦用戶同意創建結算協議。問題是 - 什麼時候適合我打電話。如果有用戶真正被重定向到returnUrl的保證,那麼這很好,我可以用這個工作。順便說一下,一旦returnUrl被打到與貝寶服務器進行覈對,如果這是真正的貝寶用戶的有效請求,調用GetExpressCheckoutDetails更好。 –
在買方點擊returnUrl之後,調用CreateRecurringPaymentsProfile的正確時間。只要PayPal點擊PayPal上的「同意並繼續」按鈕,PayPal就會立即將買方重定向到returnUrl,因此他們擊中了您的returnUrl這一事實意味着他們已同意購買/定期付款。並非100%保證買方會打你的退貨 - 因爲網絡中斷可能發生,或者買方可能決定取消付款 - 但機會接近100%。 –
謝謝,馬特。我想這與我可以從PayPal獲得的保證很接近。我認爲這是唯一的方法,但想確保。太糟糕了,沒有辦法從新的訂閱請求中接收來自PayPal的IPN通知,但它是可管理的。 –