2011-05-19 125 views
0

我在沙箱环境中测试一个PayPal按钮,它的工作。现在我试图让它在实时环境中工作,但按钮仍处于禁用状态。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按钮是使

+1

我不知道该贝宝应用程序ID是否应该是一个秘密信息或不... – Vladimir 2011-05-19 13:03:20

+1

我相信他使用的ID是一个示例测试应用程序ID。 – Krishnan 2011-05-19 13:19:08

+0

嘿公羊,我在我的iphone应用程序与沙箱环境中集成贝宝,但我得到网络超时错误,也注意到贝宝对象也没有初始化.....你能帮我....对于初始化我已使用此代码 - [PayPal initializeWithAppID:@“APP-80W284485P519543T”forEnvironment:ENV_SANDBOX];我会等待您的回复... – Minakshi 2012-03-12 12:29:20

回答

2

有时,当贝宝服务器已关闭或与服务器的任何问题,贝宝对象的初始化失败,该按钮会在这些情况下被禁用。

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

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

} 

从文档:

“支付使用PayPal”按钮由getPayButtonWithTarget方法 返回 禁用直到初始化完成 。一旦初始化完成 ,如果成功, 按钮将被启用。

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

如果由于 买方错误导致初始化失败,则错误消息为 ,呈现为UIAlertView。

+0

那么,当这种情况一直失败并且表明服务器存在问题时,您打电话给谁?你可以暗示一下为什么PayPal的最佳路径是? – pulkitsinghal 2012-01-18 21:46:22

2

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

记住,你需要有自己的验证PayPal Premier or Business Account之前的应用程序将工作(即使它被批准)。

如果您提交移动应用采取这些额外的步骤

  1. iPhone(iOS版)应用程序必须包括:
    • “应用程序”,并与UDID的396ea30899bb294607270258115a8eb9c929c021“移动规定” 文件7754a0e4b281fd313f20d9e13c87534e26b091e3。这些是PayPal将测试的两款iPhone。
  2. 的iPad(iOS版)应用程序必须包括:
    • “应用程序” 和 “移动规定” 文件,UDID 92e19f163eb553d42dfed00487fcaf73f7521c6e
  3. 对于一个Android应用程序,提供了一个链接到你的。 apk文件或将.apk文件附加到应用程序的“屏幕截图和任何支持文档”中
  4. 对于黑莓应用程序,请提供指向.jad文件的链接或将.jad文件附加到“屏幕截图和任何支持文件ntation”应用
  5. 一个Symbian应用程序,提供了一个链接到你的文件名为.wgz或附加在该文件名为.wgz的‘屏幕捕获和应用

的任何证明文件’一旦你的应用程序是批准后,您会收到一个Live App ID。只需将测试应用程序ID替换为Live App ID,然后将您的Sandbox API凭据更改为Live API凭据。