我試圖執行流「設置網頁調用嵌入式支付流程使用燈箱」這裏描述https://developer.paypal.com/webapps/developer/docs/classic/adaptive-payments/integration-guide/APIntro/我如何跟蹤從PayKey請求到IPN響應的交易?
我能夠獲得初始paykey,我得到的迴應是這樣這樣的:
{u'responseEnvelope': {u'ack': u'Success', u'timestamp': u'2013-08-06T01:59:32.228-07:00', u'build': u'6941298', u'correlationId': u'3f9b3609b9069'}, u'paymentExecStatus': u'CREATED', u'payKey': u'AP-4C138527MX750433P'}
在這一點上,我們是能夠顯示在我們的網站上「支付使用PayPal」按鈕,按照支付等....現在的問題是IPN通知。
我已經試過了IPN模擬器和它所發送的這些值(例如)POST:
Key: last_name - Value: Smith
Key: txn_id - Value: 245929950
Key: receiver_email - Value: [email protected]
Key: payment_status - Value: Completed
Key: tax - Value: 2.02
Key: residence_country - Value: US
Key: invoice - Value: abc1234
Key: address_state - Value: CA
Key: payer_status - Value: verified
Key: txn_type - Value: web_accept
Key: address_country - Value: United States
Key: payment_date - Value: 01:43:47 6 Aug 2013 PDT
Key: first_name - Value: John
Key: item_name - Value: something
Key: address_street - Value: 123, any street
Key: mc_gross1 - Value: 12.34
Key: custom - Value: xyz123
Key: notify_version - Value: 2.1
Key: address_name - Value: John Smith
Key: test_ipn - Value: 1
Key: item_number - Value: AK-1234
Key: receiver_id - Value: [email protected]
Key: business - Value: [email protected]
Key: payer_id - Value: TESTBUYERID01
Key: verify_sign - Value: AFcWxV21C7fd0v3bYYYRCpSSRl31A.8pFOgHmGMTg8Lj.JUvXyp3bu63
Key: address_zip - Value: 95131
Key: address_country_code - Value: US
Key: address_city - Value: San Jose
Key: address_status - Value: confirmed
Key: mc_fee - Value: 0.44
Key: mc_currency - Value: USD
Key: shipping - Value: 3.04
Key: payer_email - Value: [email protected]
Key: payment_type - Value: echeck
Key: mc_gross - Value: 12.34
Key: quantity - Value: 1
事實是,我們的服務器接受IPN的職位必須能夠接受任何數目的交易。所以,當我收到這樣的消息時,我怎麼知道哪一個與paykey有關?
1)我可以使用payer_email跟蹤付款情況,但如果付款人想要使用不同的PayPal帳戶登錄並付款,該怎麼辦?
2)如果來自同一PayPal賬戶的兩筆未付款項會發生什麼?
3)如果付款人不想創建PayPal賬戶並想用他的信用卡付款,該怎麼辦?
在這三種情況下,我將無法將收到的IPN消息連接到我的初始交易(即我使用paykey進行識別)。
它看起來像我失去了一些東西......任何人都可以幫我嗎?謝謝!
我有一個疑問:如果我認爲事務已經開始,我在我的數據庫中插入一行...如果用戶只是重新加載頁面會發生什麼?一個新的paykey將被複制並插入到數據庫中,等待交易完成。用戶可以開始儘可能多的交易,我必須全部管理它們,因爲我不能提前知道他是否會取消它們。這些情況下的最佳做法是什麼? –
是的,用戶可以通過一次又一次刷新頁面來創建無限購買實例。但是,如果你分配一個隨機生成的密鑰,這將只會成爲一個問題,如果* a)你用盡了數據庫空間,*或* b)你用完了隨機生成的密鑰*由於這些都不太可能,你好的去爲它。 在奇怪的情況下,空間是一個限制,你可以創建一個cronjob自動刪除超過30天前創建的條目。 –