我们如何在Windows Phone 7中实现应用程序购买

时间:2012-06-26 10:20:59

标签: windows-phone-7 paypal webbrowser-control windows-phone-7.1

您好我正在创建一个Windows Phone 7.1应用程序,这需要在应用程序购买

由于WP7没有像iphone那样的特定应用内购买SDK,我们是否可以使用paypal进行应用内购买,

我是Windows Phone 7和paypal API的新手

例如,当我点击付款按钮并在用户完成付款并且付款成功返回成功消息或失败返回失败消息时,在browsercontrol中打开移动paypal网站。

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

3 个答案:

答案 0 :(得分:4)

以下是我的问题的答案

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

  1. 创建一个网站,其中包含querystring中的商品价格/详细信息
  2. 仅在该网站上实施ExpressCheckout。我使用paypal Sandbox Web service
  3. 实现了
  4. 在WP7应用中放置浏览器控件,并为该控件添加事件BrowserControl_Navigated
  5. 为我们自己的网站创建网址,例如string.Format("http://localhost:62744/PaymentGateway/ExpressCheckout.aspx?ItemName={0}&Number={1}&Desc={2}&ItemPrice={3}&ItemUrl={4}", ItemName, ItemNumber, ItemDescription, ItemPrice, ItemUrl).Replace(" ", "+");
  6. 使用我们的WP7应用代码BrowserControl.Navigate(new Uri(url));
  7. 来呼叫网站
  8. 付款完成后,paypal服务会将应用重定向到我们提到的成功网址,否则会重定向到失败网址
  9. BrowserControl_Navigated事件添加条件以检查paypal成功和失败网址
  10. 如果条件成功导航到WP7中的成功页面

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

    上面的代码会将页面重定向到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);
    

答案 1 :(得分:2)

使用PayPal在您的应用中付款但完全可以接受Marketplace Application Policy 2.1

  

从Windows获取应用程序时,您的应用程序必须完全正常运行   电话市场(下面允许的其他数据除外)。   除非您与用户之间存在预先存在的结算关系,   您的申请可能不要求用户提供付款   应用程序体验中的信息,用于激活,解锁,   或延长申请的使用。

答案 2 :(得分:1)

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

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

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