4

嗨,我正在创建一个 windows phone 7.1 应用程序,它需要在应用程序中购买

由于 WP7 没有像 iphone 那样的特定应用内购买 SDK,我们可以paypal用于应用内购买吗?

我是 Windows Phone 7 和 paypal API 的新手

browsercontrol就像当我点击支付按钮并让用户完成支付时打开一个移动贝宝网站,如果支付成功返回成功消息,或者如果失败返回失败消息。

我认为这不是Movend最好的选择,因为我们必须在他们的网站上维护产品数据库,这也是我不想要的。

4

3 回答 3

4

这是我的问题的答案

Paypal 没有针对 WP7 的特定 sdk,所以我尝试通过以下方式解决上述问题

  1. 创建一个网站,该网站将在查询字符串中获取项目价格/详细信息
  2. 仅在该网站中实施 ExpressCheckout。我已经使用 paypal Sandbox Web 服务实现了
  3. 在 WP7 应用程序中放置一个浏览器控件并BrowserControl_Navigated为该控件添加一个事件
  4. 为我们自己的网站创建 URL,例如string.Format("http://localhost:62744/PaymentGateway/ExpressCheckout.aspx?ItemName={0}&Number={1}&Desc={2}&ItemPrice={3}&ItemUrl={4}", ItemName, ItemNumber, ItemDescription, ItemPrice, ItemUrl).Replace(" ", "+");
  5. 在我们的 WP7 应用程序代码中调用网站BrowserControl.Navigate(new Uri(url));
  6. 支付完成后,paypal 服务会将应用程序重定向到我们提到的成功 url,否则会重定向到失败 url
  7. BrowserControl_Navigated事件中添加条件以检查贝宝成功和失败的 url
  8. 如果条件成功导航到 WP7 中的成功页面

    if (BrowserControl.Source.ToString().Contains( "http://localhost:62744/PaymentGateway/Success.html"))
         NavigationService.Navigate(new Uri("/Success.xaml", UriKind.Relative));
    

更新:

上面的代码会将页面重定向到 PayPal 移动页面,它在外观和感觉上不如 iOS 登录页面。在windows phone 7中我们可以通过一个小技巧来获取PayPal iOS页面

通过更改浏览器的标题(客户端的用户代理)将为我们提供 PayPal iPhone 页面

像下面

  string header = "User-Agent:Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7";

  string url = string.Format("http://10.11.32.211:88/PaymentGateway/ExpressCheckout.aspx?ItemName={0}&Number={1}&Desc={2}&ItemPrice={3}&ItemUrl={4}", ItemName, ItemNumber, ItemDescription, ItemPrice, ItemUrl).Replace(" ", "+");

  BrowserControl.IsScriptEnabled = true;

  BrowserControl.Navigate(new Uri(url),null, header);
于 2012-07-10T06:23:27.563 回答
2

使用 PayPal 在您的应用程序中进行付款是完全可以接受的,但请注意Marketplace Application Policy 2.1

从 Windows Phone Marketplace 获取时,您的应用程序必须完全正常运行(除了下面允许的其他数据)。除非您与用户预先存在计费关系,否则您的应用程序可能不需要用户在应用程序体验中提供支付信息来激活、解锁或延长应用程序的使用。

于 2012-06-26T11:23:18.500 回答
1

我们在 3 月份在游戏中实施了 IAP。为了让 PayPal 将 WP 上的 IE9 识别为移动浏览器,我们不得不通过修改初始浏览器请求中的主机标头来欺骗 PayPal,使其认为我们是 iPhone。这是非常痛苦的。我不知道他们是否已经解决了这个问题。

此外,PayPal 使用 IE9 不支持的带水印文本框,因此我们需要在结帐时包含帮助文本以显示未标记文本框的用途(用于使用 CC 结帐,而不是 PayPal 帐户。

这是一个非常痛苦的过程,但它现在正在发挥作用。从应用商店下载 QONQR 并查看最终结果。如果您想了解有关实施的更多详细信息,请发送电子邮件至我们的支持地址。如果您需要,很乐意提供帮助。

于 2012-07-25T15:46:08.343 回答