我在沙箱环境中测试过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,则按钮启用
答案 0 :(得分:4)
您需要将应用程序提交给paypal才能将其转换为live。在沙盒模式下测试您的应用后,他们会为您提供一个ID。
检查此链接
答案 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(即使已获批准)。
如果您要提交移动应用,请执行以下额外步骤
一旦您的应用获得批准,您将收到一个实时应用ID。只需将Test App ID替换为Live App ID,并将Sandbox API凭据更改为Live API凭据。