UCommerce で構築された E コマース Web サイトがあります。チェックアウト プロセス中に、ユーザーは支払いのために支払いポータルにリダイレクトされます。
ユーザーが支払いポータルにいる間、ユーザーがバスケットに新しいアイテムを追加できないようにしたいと考えています。私の現在の解決策は、ユーザーを支払いポータルにリダイレクトする前にバスケットをセッションに保存することです。
Session["checkoutOrder"] = TransactionLibrary.GetBasket(!TransactionLibrary.HasBasket()).PurchaseOrder;
支払い後に現在のバスケットをセッションのバスケットで上書きするにはどうすればよいですか? これは、バスケットを支払い前の元の状態に戻すためです。
私はこれを試しました:
[HttpPost]
public ActionResult ExecutePayment()
{
var order = Session["checkoutOrder"] as PurchaseOrder;
order.Save();
...
}
しかし、order.Save() でエラーが発生します。
Batch update returned unexpected row count from update; actual row count: 0; expected: 1