【问题标题】:validating form before paypal simple checkout贝宝简单结帐前验证表格
【发布时间】:2017-09-25 16:47:50
【问题描述】:

我的网站上有一个简单的付款表格,可以选择使用贝宝快速结帐付款。 我的表单的其余部分通过 jquery 验证进行验证。

如何设置当您单击 paypal 按钮时,它应该在允许打开 paypal 弹出窗口之前验证表单?

$("#form1").validate();

我有一个简单的 paypal 渲染脚本

<script>
    paypal.Button.render({ ...

在贝宝文档中,他们提供了类似的内容,但我不知道如何结合 2

 validate: function(actions) {
       .....
    },

【问题讨论】:

    标签: jquery validation paypal


    【解决方案1】:

    这里有一个完整的例子:

    https://developer.paypal.com/demo/checkout/#/pattern/validation

    在 validate() 函数中,您需要监听表单更改并启用/禁用按钮。

    【讨论】:

    • 不是你的错,但这可能是我一段时间以来见过的最丑陋、最骇人听闻的事情。所以...与贝宝的课程相提并论。为什么不直接返回 Promise.resolve/reject paypal?
    • 编辑:我收回了。刚刚发现你写的关于这个的gh问题,所以是你的错=x
    【解决方案2】:

    PayPal 新 API 允许以这种方式验证表单无需使用 onInit 函数):

    paypal
      .Buttons({
        // Run when the user click on the paypal button
        onClick: function(data, actions) {
          // My validation...
          url = searchInput.value
          // My validation Function...
          const isURL = validURL(url)
          if (isURL) {
    
            // Remove Existing Error message
            if (searchError.classList[2]) {
              searchError.classList.remove('err-message--show')
            }    
            // Enable The Paypal Button
            return true
          } else {
            // Add Error messages
            searchError.classList.add('err-message--show')
            // The paypak wont continue to the paypal page...
            return false
          }
        },
        createOrder: function(data, actions) {
          return actions.order.create({
            purchase_units: [
              {
                amount: {
                  value: price,
                  currency_code: 'ILS'
                }
              }
            ]
          })
        }
      .render('#paypal-button-container')
    

    还有 onApproval 和 onError 函数...(处理 PayPal 流程的结果...)

    希望我能帮上忙, 纳威

    【讨论】:

      猜你喜欢
      • 2018-09-14
      • 1970-01-01
      • 2021-12-29
      • 2014-03-06
      • 2014-09-06
      • 2012-07-14
      • 2011-10-05
      • 2012-04-08
      • 2013-12-13
      相关资源
      最近更新 更多