跳到主要內容 已不再支援此瀏覽器。 Show 請升級至 Microsoft Edge,以利用最新功能、安全性更新和技術支援。 簽出與使用 PayPal 付款
本文內容作者 :Erik Reitan 下載 Wingtip Toys 範例專案 (C#) 或 下載電子書 (PDF)
本教學課程說明如何使用PayPal修改 Wingtip Toys 範例應用程式,以包含使用者授權、註冊和付款。 只有登入的使用者才能購買產品。 ASP.NET 4.5 Web Form專案範本的內建使用者註冊功能已包含您所需的許多功能。 您將新增PayPal快速結帳功能。 在本教學課程中,您會使用PayPal開發人員測試環境,因此不會轉移實際資金。 在教學課程結束時,您將選取要新增至購物車的產品、按一下結帳按鈕,並將資料傳送至PayPal測試網站,以測試應用程式。 在PayPal測試網站上,您將確認您的出貨和付款資訊,然後返回本機 Wingtip Toys 範例應用程式以確認並完成購買。 有數個有經驗的協力廠商付款處理器專門處理可解決延展性和安全性的線上購物。 ASP.NET 開發人員應該先考慮使用協力廠商付款解決方案的優點,再實作購物和購買解決方案。 注意 Wingtip Toys 範例應用程式的設計目的是要顯示可供 ASP.NET Web 開發人員使用的特定 ASP.NET 概念和功能。 此範例應用程式並未針對延展性和安全性的所有可能情況進行優化。 您將學到什麼:
新增訂單追蹤在本教學課程中,您將建立兩個新的類別,以追蹤使用者建立的順序中的資料。 類別會追蹤有關出貨資訊、購買總計和付款確認的資料。 新增 Order 和 OrderDetail 模型類別稍早在本教學課程系列中,您會在Models資料夾中建立
此外,您必須更新管理實體類別的資料庫內容類別別,以及提供資料庫資料存取權的資料庫內容類別別。 若要這樣做,您會將新建立的 Order 和
如本教學課程系列先前所述, ProductCoNtext.cs 檔案中的程式碼會新增 新增簽出存取Wingtip Toys 範例應用程式可讓匿名使用者檢閱並新增產品至購物車。 不過,當匿名使用者選擇購買新增至購物車的產品時,他們必須登入網站。 登入之後,他們可以存取 Web 應用程式的受限制頁面,以處理結帳和購買程式。 這些受限制的頁面包含在應用程式的 [簽出 ] 資料夾中。 新增簽出資料夾和頁面您現在將會建立 [簽出 ] 資料夾,以及客戶在簽出程式期間會看到的頁面。 您將在本教學課程稍後更新這些頁面。
新增Web.config檔案藉由將新的 Web.config 檔案新增至 [簽出 ] 資料夾,您將能夠限制存取資料夾中包含的所有頁面。
Web.config檔案指定 Web 應用程式的所有未知使用者都必須拒絕存取[簽出] 資料夾中所包含的頁面。 不過,如果使用者已註冊帳戶並登入,他們將會是已知的使用者,而且可以存取 [簽出 ] 資料夾中的頁面。 請務必注意,ASP.NET 組態遵循階層,其中每個 Web.config 檔案會將組態設定套用至其所在的資料夾,以及其下方的所有子目錄。 對專案啟用 SSL安全通訊端層 (SSL) 是一種定義的通訊協定,允許 Web 伺服器和 Web 用戶端透過加密,以更安全的方式進行通訊。 未使用 SSL 時,在用戶端和伺服器之間傳送的資料會開放給任何可實體存取網路的人員進行封包探查。 此外,數種常見驗證結構描述在一般的 HTTP 上並不是很安全。 尤其是,基本驗證和表單驗證會傳送未加密的認證。 為了安全的理由,這些驗證結構描述必須使用 SSL。
您現在可以輕鬆地使用 SSL 在本機測試 Web 應用程式。 新增 OAuth 2.0 提供者ASP.NET Web Forms 提供成員資格和驗證的增強功能選項。 這些增強功能包括 OAuth。 OAuth 是一種開放式通訊協定,可讓 Web、行動和桌面應用程式以簡單、標準的方法執行安全授權。 ASP.NET Web Forms範本會使用 OAuth 將 Facebook、Twitter、Google 和 Microsoft 公開為驗證提供者。 雖然本教學課程僅使用 Google 作為驗證提供者,但您可以輕易修改程式碼來使用任何提供者。 實作其他提供者的步驟,與您將在本教學課程中看到的步驟極為類似。 除了驗證,本教學課程也會使用角色來實作授權。 只有您新增至 注意 Windows Live 應用程式只接受工作網站的即時 URL,因此您無法使用本機網站 URL 來測試登入。 下列步驟可新增 Google 驗證提供者。
修改登入功能如本教學課程系列先前所述,大部分的使用者註冊功能預設包含在 ASP.NET Web Forms範本中。 現在,您將修改預設 的 Login.aspx 和
Register.aspx 頁面來呼叫
目前,您可以忽略沒有 方法定義的 Login.aspx.cs程式碼後置檔案支援 LogIn 方法。 藉由檢查 [登入.aspx] 頁面,您會看到此頁面包含[登入] 按鈕,當按一下時觸發
除了修改 Login.aspx.cs 程式碼後置檔案,以在使用者登入時移轉購物車,您也必須修改 Register.aspx.cs程式碼後置檔案 ,以在使用者建立新的帳戶並登入時移轉購物車。
請注意,您在事件處理常式中使用的 現在您已更新登入和註冊程式,接下來可以使用 方法來新增程式碼來移轉購物車
方法 更新資料庫連接如果您使用 預先建置的 Wingtip Toys 範例應用程式遵循本教學課程,則必須重新建立預設成員資格資料庫。 藉由修改預設連接字串,下次執行應用程式時,將會建立成員資格資料庫。
整合PayPalPayPal是 Web 型計費平臺,可接受線上商家的付款。 本教學課程接下來說明如何將PayPal快速結帳功能整合到您的應用程式中。 快速結帳可讓客戶使用PayPal支付他們新增至購物車的專案費用。 建立PayPal測試帳戶若要使用PayPal測試環境,您必須建立並驗證開發人員測試帳戶。 您將使用開發人員測試帳戶來建立購買者測試帳戶和賣方測試帳戶。 開發人員測試帳號憑證也會允許 Wingtip Toys 範例應用程式存取PayPal測試環境。
您需要顯示的傳統 TEST API 認證 (使用者名稱、密碼和簽章) ,才能從 Wingtip Toys 範例應用程式對PayPal測試環境進行 API 呼叫。 您將在下一個步驟中新增認證。 新增 PayPal 類別和 API 認證您將大部分PayPal程式碼放入單一類別。 這個類別包含用來與PayPal通訊的方法。 此外,您會將PayPal認證新增至此類別。
注意 在此範例應用程式中,您只需將認證新增至 C# 檔案 (.cs) 。 不過,在實作的解決方案中,您應該考慮加密組態檔中的認證。 NVPAPICaller 類別包含大部分的PayPal功能。 類別中的程式碼提供從PayPal測試環境進行測試購買所需的方法。 下列三個PayPal函式可用來進行購買:
注意 PayPal可讓您根據 PayPal API 規格來包含選擇性購買詳細資料。 藉由擴充 Wingtip Toys 範例應用程式中的程式碼,您可以包含當地語系化詳細資料、產品描述、稅務、客戶服務號碼,以及其他許多選擇性欄位。 請注意, ShortcutExpressCheckout 方法中指定的傳回和取消 URL 會使用埠號碼。
當 Visual Web Developer 使用 SSL 執行 Web 專案時,通常會使用埠 44300 作為網頁伺服器。 如上所示,埠號碼為 44300。 當您執行應用程式時,可能會看到不同的埠號碼。 您必須在程式碼中正確設定您的埠號碼,才能在本教學課程結束時成功執行 Wingtip Toys 範例應用程式。 本教學課程的下一節說明如何擷取本機主機埠號碼,並更新 PayPal 類別。 更新 PayPal 類別中的 LocalHost 埠號碼Wingtip Toys 範例應用程式會流覽至PayPal測試網站,並返回 Wingtip Toys 範例應用程式的本機實例來購買產品。 若要讓PayPal返回正確的 URL,您必須在上述PayPal程式碼中指定本機執行範例應用程式的埠號碼。
現在,您新增的程式碼將會符合本機 Web 應用程式的預期埠。 PayPal將能夠返回本機電腦上的正確 URL。 新增PayPal簽出按鈕既然主要PayPal函式已新增至範例應用程式,您可以開始新增呼叫這些函式所需的標記和程式碼。 首先,您必須新增使用者會在購物車頁面上看到的結帳按鈕。
將購買詳細資料傳送至 PayPal當使用者按一下購物車頁面上的 [結帳 ] 按鈕時, (ShoppingCart.aspx) ,他們就會開始購買程式。 下列程式碼會呼叫購買產品所需的第一個PayPal函式。
當應用程式的使用者按一下購物車頁面上的 [結帳 ] 按鈕時,瀏覽器會流覽至 [CheckoutStart.aspx ] 頁面。 當 CheckoutStart.aspx 頁面載入時, 檢閱訂單詳細資料從 PayPal 傳回之後,Wingtip Toys 範例應用程式的 CheckoutReview.aspx 頁面會顯示訂單詳細資料。 此頁面可讓使用者在購買產品之前檢閱訂單詳細資料。 簽出檢視.aspx頁面必須建立如下:
DetailsView控制項可用來顯示已從 PayPal 傳回的順序詳細資料。 此外,上述程式碼會將訂單詳細資料儲存至 Wingtip Toys 資料庫做為 注意 提示 在 CheckoutReview.aspx 頁面的標記中,請注意卷 選取 [ 編輯欄位],[ 欄位 ] 對話方塊隨即出現。 在此對話方塊中,您可以輕鬆地控制DetailsView控制項的視覺屬性,例如ItemStyle。 完成購買CheckoutComplete.aspx 頁面會從PayPal購買。 如上所述,使用者必須先按一下 [ 完成訂單 ] 按鈕,應用程式才能流覽至 [結帳][完成][完成][完成.aspx ] 頁面。
載入 CheckoutComplete.aspx 頁面時,會 處理取消購買如果使用者決定取消購買,系統會將他們導向 至 CheckoutCancel.aspx 頁面,他們會看到訂單已取消。
處理購買錯誤購買程式期間的錯誤將由 CheckoutError.aspx 頁面處理。 CheckoutStart.aspx頁面、CheckoutReview.aspx頁面和CheckoutComplete.aspx頁面的程式碼後置,都會重新導向至CheckoutError.aspx發生錯誤時的頁面。
CheckoutError.aspx頁面會顯示在簽出程式期間發生錯誤時的錯誤詳細資料。 執行應用程式執行應用程式以查看如何購買產品。 請注意,您將在PayPal測試環境中執行。 不會交換實際金錢。
檢閱資料庫藉由在執行應用程式之後檢閱 Wingtip Toys 範例應用程式資料庫中的更新資料,您可以看到應用程式已成功記錄產品的購買。 您可以使用 Visual Studio 中的 [資料庫總管] 視窗 ([伺服器總管] 視窗來檢查Wingtiptoys.mdf資料庫檔案中包含的資料) ,如同您稍早在本教學課程系列中所做的一樣。
摘要在本教學課程中,您已新增訂單和訂單詳細資料架構,以追蹤產品的購買。 您也已將PayPal功能整合到 Wingtip Toys 範例應用程式中。 其他資源ASP.NET 組態概觀 免責聲明本教學課程包含範例程式碼。 這類範例程式碼會「依原樣」提供,但不保證任何種類。 因此,Microsoft 不保證範例程式碼的正確性、完整性或品質。 您同意自行風險使用範例程式碼。 在任何範例程式碼、內容、包括但不限於任何範例程式碼、內容或任何範例程式碼、內容或任何因使用範例程式碼而造成的任何遺失或損害時,Microsoft 都不會以任何方式對您承擔任何責任。 因此,您會收到通知,並同意聲明、儲存及保存 Microsoft 不受任何和所有損失、損失宣告、損害或任何種類損害的損害,包括您張貼、傳輸、使用或依賴之資料所發生的情況,包括但不限於該處所表達的檢視。 |