我正在为Android开发本机销售点应用程序。该应用程序是使用Xamarin编写的。
该应用程序的大多数功能将驻留在单个网页应用程序中。原生应用将主要是该网站的包装。
在我的销售点应用程序中,当用户去关闭机票时,我想启动Square POS应用程序来处理信用卡输入。
我已经在Square网站(https://developer.squareup.com/docs/pos-api/web-technical-reference#mobile-web-on-android)上关注了此文档,该文档告诉您如何构建启动Square POS应用程序的意图。
当我在调试模式下构建本机应用程序并对其进行调试时,该Intent可以正常工作。我在应用程序中单击一个按钮,构建了Intent对象,Square应用程序已加载,我可以在信用卡中刷卡/键入键,响应将返回我的本机应用程序,一切正常。
如果我在发布模式下构建本机应用程序并将其上传到我的物理Android设备上,然后运行该应用程序,则Intent也可以正常工作。 Square应用会加载,我可以处理卡等。
如果我将应用发布到Google Play商店,将其下载到同一Android设备上,然后运行该应用,则Intent无法正常工作。当我在应用程序中单击按钮并构建Intent并运行它时,我从Square收到了以下错误代码:“ com.squareup.pos.ERROR_INVALID_REQUEST”。根据Square的网站,此错误代码表示:“此交易请求中提供的信息无效(例如,必填字段缺失或格式错误)。”
我不了解如何在物理Android设备上调试应用程序正常工作,在发布模式下构建应用程序并将其上传到Android设备中是否正常工作,但是在将应用程序发布到应用程序商店并下载并运行时无法正常工作。
我尝试从设备上卸载该应用程序,然后从Play商店下载该应用程序,我试图从Play商店应用程序清除缓存/数据,但似乎无济于事。
答案 0 :(得分:0)
我找到了答案。在Square Developers信息中心中,您可以指定用于对Android应用进行签名的证书的指纹。我进去并提供了指纹,但是在Google Play商店的最新版本机应用程序中,有人打开了“使用在Google服务器上托管的证书重新签名应用程序”选项。因此,.apk将使用具有不同指纹的新证书重新签名。
我在Square Developers仪表板上添加了其他指纹,现在该过程可以正常工作了。