Paypal快捷支付

官网文档:

PayPal Express Checkout

申请自己的Paypal SandBox:

申请SandBox地址

HTML页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <title>Title</title>
        <script src="https://www.paypal.com/sdk/js?currency=HKD&client-id=YOU_CLIENT_ID" ></script>

</head>
<body>


<div id="paypal-button-container"></div>

</body>
<script>
    ...
</script>
</html>

快捷支付V1与V2版参数格式,js引入地址都是有区别的。

V1与V2区别

1. 引入js地址

V1:

<script src="https://www.paypalobjects.com/api/checkout.js"></script>

V2:

<script src="https://www.paypal.com/sdk/js?currency=HKD&client-id=YOU_CLIENT_ID" ></script>

V1中client_id与币种都是能直接在请求的json参数中设置,但是在V2版本中却只能再js的链接中设置。(不知道是不是我自己没弄明白的原因)

2. 请求json参数:

V1:

<script>
    paypal.Button.render({
        locale: 'zh_CN', // or en_US
        env: 'sandbox', // or sandbox

        commit: true, // Show a 'Pay Now' button
        client: {
            sandbox: 'AYYRdbFHaWbys&#45;&#45;n7ykGaCqka4vmfPcOH5gVDWvjGF_78Xt3QccnPYlUgulbZqsBdYAR1WIk_6u1kGUh',
            production: '***'
        },
        style: {
            size: 'small',
            color: 'silver',
            shape: 'pill',
            label: 'checkout',
            tagline: false
        },
        payment: function (data, actions) {
            return actions.payment.create({
                payment: {
                    transactions: [
                        {
                            amount: {total: '20', currency: 'HKD'}
                        }
                    ]
                }
            });
        },
        onAuthorize: function (data, actions) {
            return actions.payment.execute().then(function (payment) {
                console.log(payment);
                $.ajax({
                    type: 'POST',
                    url: '/callback',
                    data: {params: payment}
                }).done(function (data) {
                    if (data == '0') {
                        alert('The payment is complete!');
                        // window.location.reload();
                    } else {
                        alert('pay fail')
                    }
                })
            });
        },
        onCancel: function (data, actions) {
            console.log(data);
            console.log(actions);
            alert('取消支付');
        },
        onError: function (err) {
            console.log(err);
            /*
            * An error occurred during the transaction
            */
        }
    }, '#paypal-button-container');
</script>

V2:


<script>
    paypal.Buttons({
        createOrder: function (data, actions) {
            return actions.order.create({
                purchase_units: [{
                    //invoice_id: 'TEST20190627', //自己的商品流水号,必须唯一
                    reference_id: '30',
                    amount: {
                        value: '40',
                        currency_code: "HKD",
                        breakdown: {
                            item_total: {
                                currency_code: 'HKD',
                                value: '40'
                            }
                        }
                    },
                    items: [
                        {
                            name: '测试商品',
                            unit_amount: {
                                currency_code: 'HKD',
                                value: '10'
                            },
                            quantity: '2',
                            sku: '编号:25',
                            category: 'DIGITAL_GOODS'
                        },
                        {
                            name: '测试商品2',
                            unit_amount: {
                                currency_code: 'HKD',
                                value: '10'
                            },
                            quantity: '2',
                            sku: '编号:26',
                            category: 'DIGITAL_GOODS'
                        }
                    ]
                }]
            });
        },
        onApprove: function (data, actions) {
            return actions.order.capture().then(function (details) {
                alert('Transaction completed by ' + details.payer.name.given_name);
                // Call your server to save the transaction
                console.log(details);
                console.log(data);
                console.log(actions);
                return fetch('/action', { // 填写自己的后台地址
                    method: 'post',
                    headers: {
                        'content-type': 'application/json'
                    },
                    body: JSON.stringify(details)
                });
            });
        },
        //
        /*onShippingChange: function (data, actions) { 
            //限制某些地方不可购买,或者某些地方有折扣(具体可看官方文档)
            return actions.reject(); 
        },*/
        onCancel: function (data) {
            console.log("取消支付:");
            console.log(data);
            alert('取消支付');
        }
    }).render('#paypal-button-container');
</script>

1) V2中的参数必须每个都设置currency_code否则会发起支付不成功

2) V2中多个商品必须设置breakdown属性

以上就是我的个人记录,也就是瞎写写,只能最简单的发起支付收到结果。如果有什么好的建议或者有什么问题也可以提出来大家一起讨论一下。

PayPal个人支付接口是一种通过PayPal平台实现个人间交易的支付接口。它为用户提供了一种便捷、安全的付款方式,使得个人之间的货款交易更加方便快捷。该接口可以帮助用户完成各种个人支付操作,比如付款、收款、转账等,保证资金的安全性和可追溯性。 在CSDN(中国软件开发者社区)中,PayPal个人支付接口得到了广泛的应用。对于开发者和交易者来说,通过该接口可以实现快速、高效的支付交易,无论是购买软件、电子书籍等数字产品还是进行网上购物,都能在简单几步之内实现支付,提高了交易的效率和便利性。 通过PayPal个人支付接口,CSDN用户可以方便地进行会员续费、购买学习资料、参加培训课程等付费操作。用户可以使用自己的PayPal账户,或者绑定银行卡、信用卡等支付方式进行付款。这大大简化了付款流程,减少了繁琐的操作步骤,提升了用户的购买体验。 同时,PayPal个人支付接口还提供了一系列的安全措施,包括交易风险监测、买家保护政策等,保障用户的资金安全。此外,PayPal还支持全球多个国家和地区的货币结算,方便用户进行国际间的交易与支付。 总之,PayPal个人支付接口在CSDN等平台的应用使得个人之间的支付变得更加便利、高效和安全。它为用户提供了一种灵活多样的支付方式,帮助用户轻松完成各种个人支付操作,提升了交易体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值