2016-03-02 37 views
1

所以我創建了一個需要訂閱PayPal按鈕的網站。我目前使用paypal button js,但它非常不安全,人們可以更改他們支付的金額。所以我將需要使用加密的按鈕,但我不知道如何實現這一點,仍然能夠根據用戶更改價格。我需要這樣做的原因是,用戶將能夠選擇不同數量的東西。假設他們可以選擇1到50分之間的任何地方,這將改變價格,所以如果1分是1美元,並且用戶選擇24分,訂閱按鈕數量必須是每月24美元。以下是創建非加密按鈕的當前代碼。作爲一個側面的問題,如果有人碰巧知道是否保持你的商人身份的祕密是重要的。如果是的話,我會如何做到這一點?動態加密的PayPal按鈕?

\t $("#paypal-button").html(
 
\t \t '<script src="js/paypal-button.min.js?merchant=[Merchant ID]"' + 
 
\t \t \t 'data-button="subscribe"' + 
 
\t \t \t 'data-name="Custom Howloop Subscription"' + 
 
\t \t \t 'data-amount="' + roundTotal + '"' + 
 
\t \t \t 'data-recurrence="1"' + 
 
\t \t \t 'data-period="M"' + 
 
\t \t \t 'async' + 
 
\t \t '> </script>' 
 
\t);

+0

你應該檢查在另一端支付的金額,它是唯一可靠的方法來做到這一點 – 2016-03-02 19:02:11

回答

2

很久以前,我試圖做一些類似的。

據我所知,沒有辦法做到這一點。您將無法簡單地更改加密按鈕的值,如果未加密,用戶可以更改它並基本上支付任何費用。

如果您希望能夠安全且動態地更改值,我會建議查看他們的API/Express Checkout。這就是我所做的,我真的很高興我做到了。

您可以在將所有內容轉發到PayPal之前檢查所有內容,並且我從來沒有遇到過這方面的問題(我傳遞了項目ID並查詢我的數據庫以獲取成本/等並應用其他檢查來停止各種問題)。您可以通過並應用您需要的任何計算結果,以確保沒有問題的價格。

否則,我能想到的唯一方法是爲不同的價格使用多個加密按鈕。但這不是很有趣,也不是最佳解決方案。

編輯:現在,我無法在手機上,這裏是一個鏈接到Express Checkout Getting Started Guide.

另外,我不認爲你需要擔心被人看見自己的商家ID。它用於處理付款,我相信它可以在交易詳情中看到。

+0

你知道我前一段時間看了API/Express Checkout,也許我做的不正確(這很可能),但無論如何,我使用ajax POST沙盒端點,我得到一個錯誤,因爲它在不同的域。這是做這件事的正確方法嗎? – rharbison

+0

我會說實話,我不完全確定你是怎麼做到的。但我可以給你一個流程/流程的簡要概念。你聲明的API憑據,返回網址,取消網址,貝寶模式(生活/沙箱)和其他一些事情。數據傳遞到您的處理腳本,您可以在其中設置價格變量等(基本上,您將在哪裏查詢數據庫以獲取正確的數據)。數據/用戶被導向PayPal進行付款。完成後,它們將重定向回存儲數據/顯示完整頁面的聲明返回URL。 – Son

+0

有更多的發揮進去(令牌,請求等)比我說的,但至少它給你如何流動的作品非常基本的想法。另外,您可能會注意到有IPN和ExpressCheckout。它們是不同的,你可以同時使用,也可以使用另一種。例如,一個echeck將被標記爲掛起ExpressCheckout,因爲它在處理時正在掛起。一旦付款更新/更改,IPN將被通知,並且您可以相應地更新數據庫。 – Son

0

沒有託管貝寶一方的按鈕細節,沒有辦法做到這一點。這也會發生在舊式的PayPal表單集成中,任何人都可以進入Chrome的Devtools並修改html表單變量。作爲解決方法,您可以實施一個託管訂閱按鈕,並讓用戶更改訂閱的數量。如果你的價格與點數成線性關係,那麼它就會起作用。

0

有沒有辦法!不要聽那些說唱者,我最近成功地對動態創建的購物車信息進行了加密,這些信息被注入到使用php的空表單中。我真的打算創建一個完整的教程,因爲它似乎是稀有信息(我想知道爲什麼貝寶沒有這個標準教程)。我記得有幾天因爲這個問題而處於壓力之下,差不多一個月後,我碰巧遇到了這裏提供的一個教程:https://www.stellarwebsolutions.com/en/articles/paypal_button_encryption_php.php

經過一些小的修改後,我能夠使用我生成的私人密碼來加密數據密鑰和公共證書(請確保您的網站上有HTTPS)。貝寶然後能夠成功解密信息!(哦,孩子,你敢說我做的開心舞)

確保數據有效利用IPN付款後是當u可以避免大多數做自定義加密篡改很凌亂的做法。無論如何,直到我扣下來,並創造一個視頻教程祝你好運 - 在回顧我看看真正簡單這個過程真的是!

+0

我會小心,文章的日期是2010年 – Martin

+0

它似乎是正常的,也是加密是在這種情況下 – DiscreteTomatoes

+0

謝謝您的答覆,我會考慮看看他們,給一個鏈接總比沒有總是更好試圖實現它,確保您發佈視頻時的鏈接,我很樂意看到它。 – rharbison