贝宝按钮问题

时间:2011-05-19 12:57:24

标签: iphone objective-c paypal paypal-sandbox

我在沙箱环境中测试过PayPal按钮,但它确实有效。现在我想让它在实时环境中工作,按钮仍然处于禁用状态。

我的代码是

[PayPal initializeWithAppID:@"APP-80W284485P519543T" forEnvironment:ENV_LIVE];  
UIButton *button = [[PayPal getInstance] getPayButton:self buttonType:BUTTON_278x43 startCheckOut:@selector(payWithPayPal) PaymentType:DONATION withLeft:20 withTop:240];   
[self.view addSubview:button];

如果我将环境ENV_LIVE更改为ENV_SANDBOX,则按钮启用

3 个答案:

答案 0 :(得分:4)

您需要将应用程序提交给paypal才能将其转换为live。在沙盒模式下测试您的应用后,他们会为您提供一个ID。

检查此链接

https://www.x.com/community/ppx/xspaces/mobile/mep

答案 1 :(得分:2)

有时,当PayPal服务器关闭或服务器出现任何问题时,PayPal对象的初始化失败,在这些情况下按钮将被禁用。

您可以使用以下代码检查初始化的状态:

if ([PayPal initializationStatus] == STATUS_COMPLETED_SUCCESS) { //We have successfully initialized and are ready to pay
}

} 

来自文档:

  

返回“Pay with PayPal”按钮   通过getPayButtonWithTarget方法   在初始化之前被禁用   完成。初始化后   完成,如果成功的话,   按钮将启用。

     

初始化状态返回时   STATUS_COMPLETED_ERROR - 请求   超时或主机不可用(网络   连接失败)是有效的   初始化错误情况   initializePayPal重试尝试。

     

如果初始化因a而失败   买家错误,错误信息是   作为UIAlertView呈现。

答案 2 :(得分:2)

只有在您的应用获得PayPal批准后,才能使用实时环境。您用于初始化PayPal的AppID是硬编码的,用于SANDBOX环境。对于实时应用程序,您需要使用PayPal分配给您的应用程序的App ID。按照steps in this page获取应用的应用ID。

请注意,您需要在应用运行之前拥有自己经过验证的PayPal Premier or Business Account(即使已获批准)。

如果您要提交移动应用,请执行以下额外步骤

  1. iPhone(iOS)应用必须包含:
    • “。app”和“mobile provision”文件,其中UDID 396ea30899bb294607270258115a8eb9c929c021 AND 7754a0e4b281fd313f20d9e13c87534e26b091e3 。这些是PayPal将测试的两款iPhone。
  2. iPad(iOS)应用必须包含:
    • “。app”和“mobile provision”文件,其中包含UDID 92e19f163eb553d42dfed00487fcaf73f7521c6e
  3. 对于Android应用,请提供指向.apk文件的链接或在应用程序的“屏幕截图和任何支持文档”中附加.apk文件
  4. 对于Blackberry应用程序,请提供指向.jad文件的链接或将.jad文件附加到应用程序的“屏幕截图和任何支持文档”中
  5. 对于Symbian应用程序,请提供指向.wgz文件的链接或将.wgz文件附加到应用程序的“屏幕截图和任何支持文档”中
  6. 一旦您的应用获得批准,您将收到一个实时应用ID。只需将Test App ID替换为Live App ID,并将Sandbox API凭据更改为Live API凭据。