【问题标题】:Add multiple items to Paypal in single form using hosted_button_id使用 hosts_button_id 以单一形式将多个项目添加到 Paypal
【发布时间】:2011-10-08 07:16:10
【问题描述】:

我想在网站上设置一个表单以通过 PayPal 购买多种产品。产品在 PayPal 帐户中设置,每个产品都有一个 hosts_button_id。

表单将包含一系列描述和数量字段,最初都设置为零。然后,客户可以针对每种产品添加所需数量并使用单个“立即购买”按钮提交表单。

这可以通过 PayPal 实现吗?我不是特别想要“购物车”体验,也不想传递产品价格(而是使用存储在 PayPal 中的数据)。

谢谢

【问题讨论】:

    标签: paypal


    【解决方案1】:

    最后我得出结论,你不能这样做。

    我尝试了所有方法,包括对提交进行 AJAX 处理并通过隐藏的 iFrame 发送提交以使用户留在我的网站上。没有任何效果。在使用购物车时,PayPal 似乎非常热衷于执行其批准的购物流程。

    【讨论】:

      【解决方案2】:

      您可以这样做,但您需要进行一些服务器端编程。您以编程方式构建一个“加密按钮”,然后将其提交给 PayPal。

      我在https://secure.entrian.com/store/store.html 的商店页面做到了 - 它提示输入一些信息,将其发送到服务器以转换为加密按钮,然后将其提交给 PayPal。

      JavaScript 看起来像这样,其中 $license_name$quantity 是我提示输入的字段,formgen.py 是一个服务器端 Python 脚本,它根据 PayPal 的文档使用 OpenSSL 构建和签署请求:

      $paypal_form.submit(function () {
         var response = $.ajax({
             type: "GET",
             url: 'formgen.py?' + serialize({
                 licenseName: $license_name.val(),
                 quantity: $quantity.val()
             }),
             async: false
         }).responseText;
      
         if (response.indexOf('PKCS7') >= 0) {
             $encrypted.val(response);
         } else {
             $payment_errors.text(response).show(easing_duration);
             return false;
         }
      
         return true;
      }
      

      表格看起来像这样(比较简单):

      <form id="paypal-form" action="https://www.paypal.com/cgi-bin/webscr" method="post">
      <input type="hidden" name="cmd" value="_s-xclick">
      <input type="hidden" name="upload" value="1">
      <input type="hidden" id="encrypted" name="encrypted" value="">
      <button id="buynow" class="submit-button btn" type="submit">Buy Now</button>
      </form>
      

      在表单提交到 PayPal 之前,&lt;input name="encrypted" ...&gt; 会填充 AJAX 响应。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-18
        • 1970-01-01
        • 1970-01-01
        • 2012-04-21
        • 1970-01-01
        • 1970-01-01
        • 2015-03-02
        相关资源
        最近更新 更多