如何在 laravel 中使用 jquery 在 paypal 中传递帐单地址或用户详细信息

Posted

技术标签:

【中文标题】如何在 laravel 中使用 jquery 在 paypal 中传递帐单地址或用户详细信息【英文标题】:How to pass billing address or user details in paypal using jquery in laravel 【发布时间】:2020-11-07 21:54:46 【问题描述】:

我正在使用 Braintree 付款进行 PayPal 付款度假集成,但我无法在 PayPal 上传递参数。

jquery

<script type="text/javascript">
jQuery(document).ready(function(e) 
braintree.setup(
        // Replace this with a client token from your server
        " <?php print session('braintree_token')?>",
        "dropin", 
            container: "payment-form",
        );

);

<script type="text/javascript">
window.onload = function(e)

var paypal_public_key = document.getElementById('paypal_public_key').value;
var acount_type = document.getElementById('paypal_environment').value;
if(acount_type=='Test')
  var paypal_environment = 'sandbox'
else if(acount_type=='Live')
  var paypal_environment = 'production'


   paypal.Button.render(
       enableBillingAddress: false,
  env: paypal_environment, // sandbox | production
  style: 
          label: 'checkout',
          size:  'small',    // small | medium | large | responsive
          shape: 'pill',     // pill | rect
          color: 'gold'      // gold | blue | silver | black
      ,

  // PayPal Client IDs - replace with your own
  // Create a PayPal app: https://developer.paypal.com/developer/applications/create

  client: 
    sandbox:     paypal_public_key,
    production:  paypal_public_key
  ,

  // Show the buyer a 'Pay Now' button in the checkout flow
  commit: true,

  // payment() is called when the button is clicked
  payment: function(data, actions) 
    var payment_currency = document.getElementById('payment_currency').value;
    var total_price = '<?php echo number_format((float)$total_price+0, 2, '.', '');?>';
      var billing_address = false;

    // Make a call to the REST api to create the payment
    return actions.payment.create(

      payment: 
        transactions: [
          
            amount: 
                total: total_price,
                currency: payment_currency,
            ,

          
        ]
      
    );
  ,



  // onAuthorize() is called when the buyer approves the payment
  onAuthorize: function(data, actions) 

    // Make a call to the REST api to execute the payment
    return actions.payment.execute().then(function() 
         jQuery('#update_cart_form').prepend('<input type="hidden" name="nonce" value='+JSON.stringify(data)+'>');
      jQuery("#update_cart_form").submit();
    );
  

, '#paypal_button');

;

当我点击 PayPal 按钮时,它会重定向到 sandbox.paypal.com,这是正确的,但它不会隐藏帐单地址,它仍然处于启用状态,我通过了 false。 所以,我的问题是如何使用 jquery 将参数传递给 PayPal 结帐,因为我需要传递一些关于客户的更多信息。那么如何实现这一点。 请帮忙。

【问题讨论】:

【参考方案1】:

所有 PayPal 交易都使用帐单邮寄地址。这是必需的。

enableBillingAddress 参数用于请求返回该信息。很少有卖家账户可以在设置为 true 的情况下处理付款,因此您应该忽略这一点。

如果您的目标是设置预填信息,则需要与其他字段一起设置,并且在用户登录时可能会被忽略,因为已登录的用户已经存储了自己的信息。

【讨论】:

感谢您的回复。我可以传递名字、姓氏或电子邮件地址等用户详细信息吗?? 您使用的是旧的 checkout.js 集成,所以这里是存档文档developer.paypal.com/docs/archive/checkout/integrate/… 如何在我的问题中提到的 jquery 中传递 email 或 displayName 参数??

以上是关于如何在 laravel 中使用 jquery 在 paypal 中传递帐单地址或用户详细信息的主要内容,如果未能解决你的问题,请参考以下文章

如何在laravel中使用json将json数组打印到jquery表?

如何在laravel中使用jquery将行添加到数据表中

如何使用 laravel 在 jquery fullcalendar 中存储拖动的事件

如何在 laravel 中使用 jquery 自动填写 PayPal Guest Checkout 表单

如何在 Laravel Blade 上使用 jquery 元素

如何使用 jQuery-Tabledit 和 Laravel 更新表格行