Paypal优惠码结账

4

我正在为我的网站制作一个简单的产品结帐系统。 我正在使用paypal默认的结帐系统。 它很好用,但我也需要优惠券代码功能。 我从未在paypal中看到任何有关优惠券代码的选项。 这就是为什么我尝试通过jquery来创建它。

我成功地做到了,但只适用于一个产品。 当我在页面上添加更多产品时,它不起作用。 我可以理解这是由于类和id问题,但我仍然不知道如何解决。 目前我的代码只能以硬编码价格的方式折扣,还在尝试以%为基础进行折扣。

你们能否检查我的代码,看看我的错误在哪里,或者如何改进它。 或者如果有其他方法可以实现。

HTML

<h2>  Product 1 - $4.99</h2> 
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="paypal" class="frm_paypal">
    <input type="hidden" name="cmd" value="_cart" />
    <input type="hidden" name="business" value="info@soming.com" />
    <input type="hidden" name="lc" value="US" />
    <input type="hidden" name="item_name" value="Chile Powder" />
    <input type="hidden" name="item_number" value="0001" />
    <input type="hidden" name="amount" class="amount" value="4.99" />
    <input type="hidden" name="currency_code" value="USD" />
    <input type="hidden" name="button_subtype" value="products" />
    <input type="hidden" name="no_note" value="0" />
    <input type="hidden" name="tax_rate" value="0.082" />
    <input type="hidden" name="add" value="1" />
    <input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHostedGuest" />
    <input type="image" alt="PayPal - The safer, easier way to pay online!" name="submit" src="http://oldstoberfest.com/wp-content/uploads/2015/04/buynow.png" class="btnPaypal" />
    <div class="div_coupon_code">
        <div class="div_msg"></div>If you have any coupon code please enter Otherwise leave it blank and Press checkout.
        <br>
        <input type="text" name="coupon_code" class="coupon_code" value="" placeholder="Coupon Code" />
        <br>
        <input type="button" class="btnCheckOut" name="btnCheckOut" value="Checkout" /> <span class="span_pay">
        <input type="button" class="btnPay" name="btnPay" value="Pay" />
        </span> 
    </div>
    <img alt="" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" border="0" />
</form>
 <h2>  Product 2 - $6.99</h2> 
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="paypal" class="frm_paypal">
    <input type="hidden" name="cmd" value="_cart" />
    <input type="hidden" name="business" value="info@soming.com" />
    <input type="hidden" name="lc" value="US" />
    <input type="hidden" name="item_name" value="Chile Powder" />
    <input type="hidden" name="item_number" value="0002" />
    <input type="hidden" name="amount" class="amount" value="6.99" />
    <input type="hidden" name="currency_code" value="USD" />
    <input type="hidden" name="button_subtype" value="products" />
    <input type="hidden" name="no_note" value="0" />
    <input type="hidden" name="tax_rate" value="0.082" />
    <input type="hidden" name="add" value="1" />
    <input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHostedGuest" />
    <input type="image" alt="PayPal - The safer, easier way to pay online!" name="submit" src="http://oldstoberfest.com/wp-content/uploads/2015/04/buynow.png" class="btnPaypal" />
    <div class="div_coupon_code">
        <div class="div_msg"></div>If you have any coupon code please enter Otherwise leave it blank and Press checkout.
        <br>
        <input type="text" name="coupon_code" class="coupon_code" value="" placeholder="Coupon Code" />
        <br>
        <input type="button" class="btnCheckOut" name="btnCheckOut" value="Checkout" /> <span class="span_pay">
        <input type="button" class="btnPay" name="btnPay" value="Pay" />
        </span> 
    </div>
    <img alt="" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" border="0" />
</form>

<h2>  Product 3 - $8.99</h2> 
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="paypal" class="frm_paypal">
    <input type="hidden" name="cmd" value="_cart" />
    <input type="hidden" name="business" value="info@soming.com" />
    <input type="hidden" name="lc" value="US" />
    <input type="hidden" name="item_name" value="Chile Powder" />
    <input type="hidden" name="item_number" value="0003" />
    <input type="hidden" name="amount" class="amount" value="8.99" />
    <input type="hidden" name="currency_code" value="USD" />
    <input type="hidden" name="button_subtype" value="products" />
    <input type="hidden" name="no_note" value="0" />
    <input type="hidden" name="tax_rate" value="0.082" />
    <input type="hidden" name="add" value="1" />
    <input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHostedGuest" />
    <input type="image" alt="PayPal - The safer, easier way to pay online!" name="submit" src="http://oldstoberfest.com/wp-content/uploads/2015/04/buynow.png" class="btnPaypal" />
    <div class="div_coupon_code">
        <div class="div_msg"></div>If you have any coupon code please enter Otherwise leave it blank and Press checkout.
        <br>
        <input type="text" name="coupon_code" class="coupon_code" value="" placeholder="Coupon Code" />
        <br>
        <input type="button" class="btnCheckOut" name="btnCheckOut" value="Checkout" /> <span class="span_pay">
        <input type="button" class="btnPay" name="btnPay" value="Pay" />
        </span> 
    </div>
    <img alt="" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" border="0" />
</form>
 <h2>  Product 4 - $1.99</h2> 
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="paypal" class="frm_paypal">
    <input type="hidden" name="cmd" value="_cart" />
    <input type="hidden" name="business" value="info@soming.com" />
    <input type="hidden" name="lc" value="US" />
    <input type="hidden" name="item_name" value="Chile Powder" />
    <input type="hidden" name="item_number" value="0004" />
    <input type="hidden" name="amount" class="amount" value="1.99" />
    <input type="hidden" name="currency_code" value="USD" />
    <input type="hidden" name="button_subtype" value="products" />
    <input type="hidden" name="no_note" value="0" />
    <input type="hidden" name="tax_rate" value="0.082" />
    <input type="hidden" name="add" value="1" />
    <input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHostedGuest" />
    <input type="image" alt="PayPal - The safer, easier way to pay online!" name="submit" src="http://oldstoberfest.com/wp-content/uploads/2015/04/buynow.png" class="btnPaypal" />
    <div class="div_coupon_code">
        <div class="div_msg"></div>If you have any coupon code please enter Otherwise leave it blank and Press checkout.
        <br>
        <input type="text" name="coupon_code" class="coupon_code" value="" placeholder="Coupon Code" />
        <br>
        <input type="button" class="btnCheckOut" name="btnCheckOut" value="Checkout" /> <span class="span_pay">
        <input type="button" class="btnPay" name="btnPay" value="Pay" />
        </span> 
    </div>
    <img alt="" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" border="0" />
</form>
 <h2>  Product 5 - $6.99</h2> 
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="paypal" class="frm_paypal">
    <input type="hidden" name="cmd" value="_cart" />
    <input type="hidden" name="business" value="info@soming.com" />
    <input type="hidden" name="lc" value="US" />
    <input type="hidden" name="item_name" value="Chile Powder" />
    <input type="hidden" name="item_number" value="0005" />
    <input type="hidden" name="amount" class="amount" value="6.99" />
    <input type="hidden" name="currency_code" value="USD" />
    <input type="hidden" name="button_subtype" value="products" />
    <input type="hidden" name="no_note" value="0" />
    <input type="hidden" name="tax_rate" value="0.082" />
    <input type="hidden" name="add" value="1" />
    <input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHostedGuest" />
    <input type="image" alt="PayPal - The safer, easier way to pay online!" name="submit" src="http://oldstoberfest.com/wp-content/uploads/2015/04/buynow.png" class="btnPaypal" />
    <div class="div_coupon_code">
        <div class="div_msg"></div>If you have any coupon code please enter Otherwise leave it blank and Press checkout.
        <br>
        <input type="text" name="coupon_code" class="coupon_code" value="" placeholder="Coupon Code" />
        <br>
        <input type="button" class="btnCheckOut" name="btnCheckOut" value="Checkout" /> <span class="span_pay">
        <input type="button" class="btnPay" name="btnPay" value="Pay" />
        </span> 
    </div>
    <img alt="" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" border="0" />
</form>

<h2>  Product 6 - $6.99</h2> 
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="paypal" class="frm_paypal">
    <input type="hidden" name="cmd" value="_cart" />
    <input type="hidden" name="business" value="info@soming.com" />
    <input type="hidden" name="lc" value="US" />
    <input type="hidden" name="item_name" value="Chile Powder" />
    <input type="hidden" name="item_number" value="0006" />
    <input type="hidden" name="amount" class="amount" value="6.99" />
    <input type="hidden" name="currency_code" value="USD" />
    <input type="hidden" name="button_subtype" value="products" />
    <input type="hidden" name="no_note" value="0" />
    <input type="hidden" name="tax_rate" value="0.082" />
    <input type="hidden" name="add" value="1" />
    <input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHostedGuest" />
    <input type="image" alt="PayPal - The safer, easier way to pay online!" name="submit" src="http://oldstoberfest.com/wp-content/uploads/2015/04/buynow.png" class="btnPaypal" />
    <div class="div_coupon_code">
        <div class="div_msg"></div>If you have any coupon code please enter Otherwise leave it blank and Press checkout.
        <br>
        <input type="text" name="coupon_code" class="coupon_code" value="" placeholder="Coupon Code" />
        <br>
        <input type="button" class="btnCheckOut" name="btnCheckOut" value="Checkout" /> <span class="span_pay">
        <input type="button" class="btnPay" name="btnPay" value="Pay" />
        </span> 
    </div>
    <img alt="" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" border="0" />
</form>
 <h2>  Product 7 - $6.99</h2> 
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="paypal" class="frm_paypal">
    <input type="hidden" name="cmd" value="_cart" />
    <input type="hidden" name="business" value="info@soming.com" />
    <input type="hidden" name="lc" value="US" />
    <input type="hidden" name="item_name" value="Chile Powder" />
    <input type="hidden" name="item_number" value="0007" />
    <input type="hidden" name="amount" class="amount" value="6.99" />
    <input type="hidden" name="currency_code" value="USD" />
    <input type="hidden" name="button_subtype" value="products" />
    <input type="hidden" name="no_note" value="0" />
    <input type="hidden" name="tax_rate" value="0.082" />
    <input type="hidden" name="add" value="1" />
    <input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHostedGuest" />
    <input type="image" alt="PayPal - The safer, easier way to pay online!" name="submit" src="http://oldstoberfest.com/wp-content/uploads/2015/04/buynow.png" class="btnPaypal" />
    <div class="div_coupon_code">
        <div class="div_msg"></div>If you have any coupon code please enter Otherwise leave it blank and Press checkout.
        <br>
        <input type="text" name="coupon_code" class="coupon_code" value="" placeholder="Coupon Code" />
        <br>
        <input type="button" class="btnCheckOut" name="btnCheckOut" value="Checkout" /> <span class="span_pay">
        <input type="button" class="btnPay" name="btnPay" value="Pay" />
        </span> 
    </div>
    <img alt="" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" border="0" />
</form>

JS

jQuery(document).ready(function($){
  $('body').on('click','#btnPaypal', function(e) {
      e.preventDefault();
      $("#div_coupon_code").show("slow");
      return false;
  });

  $('body').on('click','#btnCheckOut', function(e) {
      var coupon=$("#coupon_code").val();
      var go_paypal=1;
      if(coupon=="happy" || coupon=="HAPPY")
      {
        $("#amount").val(5.24);
        $("#div_msg").html("Valid coupon code entered! Click pay to continue").show("slow");
        go_paypal=0;
      }
      else if(coupon!="")
      {
        $("#div_msg").html("Invalid coupon code. Please double check").show("slow");
        go_paypal=1;
      }
      else
        $("#frm_paypal").submit();

      if(go_paypal==0)
      {
        $("#btnCheckOut").hide("slow");
        $("#span_pay").show("fast");
      }
  });

  $('body').on('click','#btnPay', function(e) {
      $("#frm_paypal").submit();
  });
  $("#div_coupon_code").hide();
  $("#span_pay").hide();    
});  

单产品演示http://jsfiddle.net/cyber007/gpLeqgzc/

多产品演示http://jsfiddle.net/cyber007/3pLv8dy6/

我会在这里保持更新


1
试试这个:http://jsfiddle.net/3pLv8dy6/1/ - madalinivascu
1
@madalin,非常感谢您的尝试。我更新了HTML以更好地理解价格。http://jsfiddle.net/cyber007/3pLv8dy6/2/ 但是我希望当我输入正确的优惠码时,它会减少25%的价格并进入结账页面。同时,也要确保在多个产品上正常工作。目前,如果一个优惠码正确,则其他优惠码也会受到影响。 - pagol
1个回答

0
如果您想动态计算多个产品的折扣,则应将所有产品价格相加,然后在获得总价后应用优惠券折扣。
因此,您的代码应该像这样...
function calcPrice(){
var v = parseInt(document.getElementById("val").value);
var q = parseInt(document.getElementById("quantity").value);
if ((isNaN(q)) || (q == null) || (q <0)) {
alert ("You must enter a positive number");
document.getElementById("quantity").value = "";
return false;
}
var p = calcTotal(v,q);
alert("Total Price = " + p);
}

function calcTotal(v,q) {
var discount = 0;
if (q>=1) {discount = .25}
var price = q * v;
var savings = price * discount;
var total = price - savings;
return total;
}

这是参考资料,你只需要根据你的HTML修改ID和类即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接