Paypal webhooks事件不会在沙箱中触发

时间:2017-06-30 06:11:44

标签: paypal paypal-sandbox paypal-webhooks

您好我正在使用以下设置

  • 创建了paypal商家和客户沙盒帐户
  • 配置的paypal REST API应用
  • 在我的服务器上添加了一个webhook网址,并使用webhook simulator
  • 验证了它的工作原理
  • 使用找到here
  • 的Express Checkout javascript实现

我在沙盒中查看通知时能够成功付款但是没有触发任何webhook ???

以下是我使用的javascript实现示例,请注意它是否嵌入在coldfusion脚本文件中,因此使用了hashtags。

`

var items = #paypalItems#;

// Render the PayPal button
paypal.Button.render({

    env: '#application.config.paypal.bSandbox ? "sandbox" : "production"#', // sandbox | production
    commit: true,

    //style the button
    style: {
        label: 'pay'
    },

    // PayPal Client IDs - replace with your own
    client: {
        sandbox:    '#application.config.paypal.sandbox_key#',
        production: '#application.config.paypal.live_key#'
    },

    // Wait for the PayPal button to be clicked
    payment: function(data, actions) {

        // Make a client-side call to the REST api to create the payment
        return actions.payment.create({
            payment: {
                transactions: [{
                    amount: {
                        total: #trim(numberFormat( application.oCart.getTotal(bDiscount=1,bShipping=1) , "99999999.99" ))#,
                        currency: "AUD",
                        details: {
                        subtotal: #trim(numberFormat( application.oCart.getTotal() - application.oCart.getAmountGST( amount=application.oCart.getTotal(bDiscount=1), addGST=false ), "99999999.99" ))#,
                        tax: #trim(numberFormat(application.oCart.getAmountGST( amount=application.oCart.getTotal(bDiscount=1), addGST=false ), "99999999.99" ))#,
                        shipping: #trim(numberFormat( application.oCart.oShipping.getCartShippingAmount(country=session.fcbshoppingCart.order.shippingCountry), "99999999.99" ))#
                        }
                    },
                    invoice_number: "#orderNumber#",
                    item_list: {
                        items:  items,
                        shipping_address: {
                        recipient_name: "#session.fcbshoppingCart.customer.firstName# #session.fcbshoppingCart.customer.lastName#",
                        line1: "#session.fcbshoppingCart.order.shippingAddress1#",
                        line2: "#session.fcbshoppingCart.order.shippingAddress2#",
                        city: "#session.fcbshoppingCart.order.shippingSuburb#",
                        country_code: "#paypalCountryCode#",
                        postal_code: "#session.fcbshoppingCart.order.shippingPostCode#",
                        state: "#session.fcbshoppingCart.order.shippingState#"
                        }
                    }
                }]
            }
        });
    },

    // Wait for the payment to be authorized by the customer
    onAuthorize: function(data, actions) {

      console.log( "Paypal Authorize:", data );

        // Execute the payment
        return actions.payment.execute().then(function(payment) {

            console.log( "Paypal Response:", payment );

            //payment has been accepted so we can now generate an order
            $.ajax({
                type: "get",
                url: "/apps/paypal/createOrder.cfm",
                data: {
                    transactionNumber: "#orderNumber#",
                    payPalPaymentId: data.paymentID
                },
                dataType: "json",
                success: function( res ) {
                    console.log('edharry create order data', res);

                    if( res.BPAYMENTPROCEED ) {
                        $('##paypal-message').addClass("show success").text('Payment Successfully Complete!');
                        //lets redirect to the checkout success page.
                        window.location.href = window.location.origin + '/shop/checkout/confirmation?productOrder=' + res.PRODUCTORDER.OBJECTID;
                    } else {
                        //need to handle a failed transaction
                        $('##paypal-message').addClass("show failure").text('Payment did not complete on server!');
                    }
                },
                error: function() {
                    //lets show an error
                    $('##paypal-message').addClass("show failure").text('Payment did not complete on server!');
                }
            })

            $('##paypal-message').addClass("show success").text('Payment Successfully Complete!');
        });
    },

    onCancel: function(data) {
        console.log('The payment was cancelled!');
    }

}, '##paypal-button-container');`

1 个答案:

答案 0 :(得分:1)

这是Paypal持续存在的问题。他们知道这个问题,目前正在努力解决这个问题。