如何解锁PayPal测试帐户?

时间:2014-03-06 01:34:10

标签: paypal titanium appcelerator paypal-sandbox

我们正在开发一款在Titanium Studio 3.2.0中开发的移动应用程序,以及从Appcelerator开发的Titanium SDK 3.2.0.GA和Alloy 1.2.2。该应用程序正在部署到Android(2.3.x及更高版本)和iOS(6.x或更高版本)。要使用PayPal,我们使用的是Titanium's PayPal module

当我们在Android上开始付款测试时,我们开始收到以下消息:您的PayPal帐户被限制或锁定。请访问www.paypal.com以解决此问题:

在iOS中我收到消息:发送了无效参数:SENDER。

我不明白为什么我的测试帐户被锁定,我试图创建一个新的测试帐户,同样的事情发生了。这很奇怪,因为它曾经在iOS中运行良好,并且在尝试在Android中进行测试之后突然间,它现在无法正常工作。

这是我使用的代码:

function createPayPalButton()
{

    Titanium.Paypal = require('ti.paypal');

    var price = paypalPrice;

    var PaypalHolderView = Ti.UI.createView({
        width: "200dp",
        height : '50dp',
        top : '10dp',
        layout : 'horizontal',
        borderRadius : '5dp',
        backgroundColor : 'transparent'
    });

    var ppArgs = {
        width: Ti.UI.FILL,
        height:"50dp",
        bottom:"20dp",
        textStyle: Titanium.Paypal.PAYPAL_TEXT_PAY, 
        appId:"APP-80W284485P519543T",
        buttonStyle: Ti.Paypal.BUTTON_194x37,
        paypalEnvironment: Ti.Paypal.PAYPAL_ENV_SANDBOX,
        feePaidByReceiver: false,
        transactionType: Ti.Paypal.PAYMENT_TYPE_DONATION,
        enableShipping: false,
        payment: {
            subtotal: price,
            tax: 0,
            shipping: 0,
            currency:"USD",
            recipient:"asama@x.com", // we're using a fake email, but we're not sure if this property should contain the email of the owner of the PayPal account.
            itemDescription:"Donation",
            merchantName:"OurMobileAppName" // not sure if we should reference to the package of our app i.e. to use com.mycompany.myapp or to just leave it as myapp
        }
    };

    var ppButton = Titanium.Paypal.createPaypalButton(ppArgs);

    PaypalHolderView.add(ppButton);

    $.MainContainer.add(PaypalHolderView);

    ppButton.addEventListener("paymentCancelled", function(e){
        Ti.API.info("Payment Canceled e: " + JSON.stringify(e));
    });

    ppButton.addEventListener("paymentSuccess", function(e){
        Ti.API.info('paymentSuccess e: ' + JSON.stringify(e));
        callback.success(e);
    });

    ppButton.addEventListener("paymentFailed", function(e){
        Ti.API.info('paymentFailed e: ' + JSON.stringify(e));
    });

    ppButton.addEventListener("paymentError", function(e){
        Ti.API.info("Payment Error e: " + JSON.stringify(e));
    });
}

这是Sandbox模式下的正常行为吗?我执行了太多交易吗?我可以解锁这个测试帐户吗?

1 个答案:

答案 0 :(得分:0)

最后,PayPal支持团队根本没有回复,我们只能找到错误。

我们发现,虽然我们的生产帐户已激活以接收付款,但沙盒帐户必须单独激活,然后更新我们创建PayPal按钮的代码,如下所示:

var ppArgs = {
    width: Ti.UI.FILL,
    height:"50dp",
    bottom:"20dp",
    appId:"APP-80W284485P519543T",
    textStyle: Titanium.Paypal.PAYPAL_TEXT_PAY, // Causes the button's text to change from "Pay" to "Donate"
    buttonStyle: Ti.Paypal.BUTTON_194x37,
    paypalEnvironment: Ti.Paypal.PAYPAL_ENV_SANDBOX,
    feePaidByReceiver: false,
    enableShipping: false,
    payment: {
        paymentType : Titanium.Paypal.PAYMENT_TYPE_SERVICE, // we added this
        subtotal: price,
        tax: 0,
        shipping: 0,
        currency:"USD",
        recipient:"your_recipient@fake.com"
    }
};

我们之后能够进行测试购买。