我们正在开发一款在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模式下的正常行为吗?我执行了太多交易吗?我可以解锁这个测试帐户吗?
答案 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"
}
};
我们之后能够进行测试购买。