0

我在沙盒环境中测试了一个 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];

如果我将 Environment ENV_LIVE 更改为 ENV_SANDBOX,则启用该按钮

4

3 回答 3

4

您必须先将应用程序提交到贝宝,然后才能将其转换为实时应用程序。在沙盒模式下测试您的应用程序后,他们会为您提供一个 ID。

检查此链接

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

于 2011-05-19T13:02:31.257 回答
2

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

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

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

} 

从文档中:

getPayButtonWithTarget 方法返回的“Pay with PayPal”按钮被禁用,直到初始化完成。初始化完成后,如果成功,按钮将变为启用状态。

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

如果由于买家错误导致初始化失败,则错误消息显示为 UIAlertView。

于 2011-05-19T13:12:57.377 回答
2

只有在您的应用获得 PayPal 批准后,才能使用直播环境。您用于初始化 PayPal 的 AppID 是硬编码的,以便在 SANDBOX 环境中使用。对于实时应用程序,您需要使用 PayPal 分配给您的应用程序的应用程序 ID。按照此页面中的步骤为您的应用获取应用 ID。

请记住,您需要拥有自己的经过验证的PayPal Premier 或企业帐户,该应用才能运行(即使已获得批准)。

如果您要提交移动应用程序,请执行这些额外步骤

  1. iPhone (iOS) 应用程序必须包括:
    • UDID为 396ea30899bb294607270258115a8eb9c929c0217754a0e4b281fd313f20d9e13c87534e26b091e3的“.app”和“mobile provision”文件。这些是 PayPal 将测试的两款 iPhone。
  2. iPad (iOS) 应用程序必须包括:
    • UDID为 92e19f163eb553d42dfed00487fcaf73f7521c6e的“.app”和“mobile provision”文件
  3. 对于 Android 应用程序,提供指向您的 .apk 文件的链接或在应用程序的“屏幕截图和任何支持文档”中附加 .apk 文件
  4. 对于 Blackberry 应用程序,提供指向您的 .jad 文件的链接或在应用程序的“屏幕截图和任何支持文档”中附加 .jad 文件
  5. 对于 Symbian 应用程序,提供指向您的 .wgz 文件的链接或在应用程序的“屏幕截图和任何支持文档”中附加 .wgz 文件

一旦您的应用获得批准,您将收到一个 Live App ID。只需将 Test App ID 替换为 Live App ID,并将您的 Sandbox API 凭据更改为 Live API Credentials。

于 2011-07-22T22:21:10.977 回答