paypal - Meteor Http Paypal 自适应账户

标签 paypal meteor

我正在尝试复制此操作指南 How-to guide 中的示例,但我总是收到此错误:

XMLHttpRequest cannot load https://svcs.sandbox.paypal.com/AdaptiveAccounts/CreateAccount. Origin http://my.domain.com is not allowed by Access-Control-Allow-Origin.

任何人都可以为我提供一个工作示例或任何提示吗?谢谢!

这是我的代码:

Meteor.http.post("https://svcs.sandbox.paypal.com/AdaptiveAccounts/CreateAccount",{
        headers: {
            "X-PAYPAL-SANDBOX-EMAIL-ADDRESS": "myemail@domain.com",
            "X-PAYPAL-SECURITY-USERID": "myuserid",
            "X-PAYPAL-SECURITY-PASSWORD": "somepassword",
            "X-PAYPAL-SECURITY-SIGNATURE": "thelongsignature",
            "X-PAYPAL-APPLICATION-ID": "APP-80W284485P519543T",
            "X-PAYPAL-DEVICE-IPADDRESS": "192.0.2.0",
            "X-PAYPAL-REQUEST-DATA-FORMAT": "JSON",
            "X-PAYPAL-RESPONSE-DATA-FORMAT": "JSON"
        },
        data: {
            accountType: "PERSONAL",
            name:{
                firstName: "John",
                lastName: "Doe"
            },
            address:{
                line1: "123 Main Street",
                city: "Sydney",
                state: "NSW",
                postalCode: "2000",
                countryCode: "AU",
                citizenshipCountryCode: "AU",
                contactPhoneNumber: "12345678",
                dateOfBirth: "1990-01-01Z",
                createAccountWebOptions:{
                    returnUrl: "http://my.domain.com/"
                },
                currencyCode: "AUD",
                emailAddress: "anotheremail@somedomain.com",
                preferredLanguageCode: "en_AU",
                registrationType: "Web",
                requestEnvelope:{
                    errorLanguage: "en_US"
                }
            }
        }
    },
    function(error,result){
        alert(error);
        alert(result.statuscode);
    })

最佳答案

您是在客户端执行此操作吗?从服务器端运行它会更安全,因为您的用户看不到凭据,此外,如果您从服务器请求文档,也不应该收到错误。您的网络浏览器正在阻止该请求,因为它是一个 cross origin request

服务器

Meteor.methods({
    'createaccount':function() {

    var result = Meteor.http.post("https://svcs.sandbox.paypal.com/AdaptiveAccounts/CreateAccount", {
        headers: {
        "X-PAYPAL-SANDBOX-EMAIL-ADDRESS": "myemail@domain.com",
        "X-PAYPAL-SECURITY-USERID": "myuserid",
        "X-PAYPAL-SECURITY-PASSWORD": "somepassword",
        "X-PAYPAL-SECURITY-SIGNATURE": "thelongsignature",
        "X-PAYPAL-APPLICATION-ID": "APP-80W284485P519543T",
        "X-PAYPAL-DEVICE-IPADDRESS": "192.0.2.0",
        "X-PAYPAL-REQUEST-DATA-FORMAT": "JSON",
        "X-PAYPAL-RESPONSE-DATA-FORMAT": "JSON"
        },
        data: {
        accountType: "PERSONAL",
        name:{
            firstName: "John",
            lastName: "Doe"
        },
        address:{
            line1: "123 Main Street",
            city: "Sydney",
            state: "NSW",
            postalCode: "2000",
            countryCode: "AU",
            citizenshipCountryCode: "AU",
            contactPhoneNumber: "12345678",
            dateOfBirth: "1990-01-01Z",
            createAccountWebOptions:{
                returnUrl: "http://my.domain.com/"
            },
            currencyCode: "AUD",
            emailAddress: "anotheremail@somedomain.com",
            preferredLanguageCode: "en_AU",
            registrationType: "Web",
            requestEnvelope:{
                errorLanguage: "en_US"
                    }
                }
            }
        });
    return result;
});

客户

Meteor.call('createaccount', function(error,result) { console.log(result); });

请注意,我已将您的请求更改为同步请求,以便它可以将数据返回给客户端

关于paypal - Meteor Http Paypal 自适应账户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14702154/

相关文章:

php - PayPal ExpressCheckout 是否已被弃用?

javascript - Tone.js 无法与 React 一起使用

php - Virtuemart 2.0 Paypal支付成功后如何开具发票

asp.net - 用于数字商品的 PayPal Express Checkout,不显示使用信用卡付款的选项

javascript - 从 Meteor.js 中的数组中删除项目

javascript - 从 meteor mongo 返回数组

linux - Web 服务器实例无法使用 aws ec2 linux : Connection refused 连接到 mongodb 实例

javascript - 用铁路由器 meteor 做路线

asp.net-mvc - 如何测试PayPal Form支付? (需要 CSC)

ruby-on-rails - 如何取消 Paypal 订阅?