javascript - 适用于 Android 的 Square Web API

标签 javascript android square

我正在尝试在我的网络应用程序中编写一个按钮,该按钮将在 Android 平板电脑上启动 Square 应用程序以进行付款处理。

我一直在遵循 Web 开发人员指南,但在定义付款 typeType 变量时遇到语法错误:未捕获的语法错误:无效或意外的 token

enter image description here

我不确定可能出了什么问题,因为这直接来自 square 文档上的示例。

有人可以透露一些信息吗?这是我的代码示例。

启动 javascript 代码的按钮:

<div id="do_square_payment" align="center" style="display:none;">
                                <button id="do_square_payment_btn_android" value="Square" style="background-image:url(images/Square.png); height:200px; width:200px;" onClick="openURL();"></button><br>
</div> 

Javascript代码:

<script>


                                function openURL(){
                                var amount = document.form.payment_amount_mobile.value;


                                var amountFixed = amount * 100;
                                console.log("Payment amount" + amountFixed);


                                  var posUrl =
                                    "intent:#Intent;" +
                                    "action=com.squareup.pos.action.CHARGE;" +
                                    "package=com.squareup;" +
                                    "S.browser_fallback_url=https://jaydien.ezservicetrax.com;" +
                                    "S.com.squareup.pos.WEB_CALLBACK_URI=https://jaydien.ezservicetrax.com;" +
                                    "S.com.squareup.pos.CLIENT_ID=sq0idp-OMMITED;" +
                                    "S.com.squareup.pos.API_VERSION=v2.0;" +
                                    "S.com.squareup.pos.CURRENCY_CODE=USD;" +
                                    "S.com.squareup.pos.TENDER_TYPES=com.squareup.pos.TENDER_CARD,com.squareup.pos.TENDER_CASH;" +
                                    "i.com.squareup.pos.TOTAL_AMOUNT="  + 
                                    amountFixed +
                                    ";" +
                                    "end";

                                  window.open(posUrl);
                                }
                               </script>

这是我使用 Chrome 开发者工具模拟 Android 设备时请求的 URL:

intent:#Intent;action=com.squareup.pos.action.CHARGE;package=com.squareup;S.com.squareup.pos.WEB_CALLBACK_URI=https://jaydien.ezservicetrax.com;S.com.squareup.pos.CLIENT_ID=OMMITED;S.com.squareup.pos.API_VERSION=v2.0;i.com.squareup.pos.TOTAL_AMOUNT=5.00;S.com.squareup.pos.CURRENCY_CODE=USD;S.com.squareup.pos.TENDER_TYPES=com.squareup.pos.TENDER_CARD,com.squareup.pos.TENDER_CARD_ON_FILE,com.squareup.pos.TENDER_CASH,com.squareup.pos.TENDER_OTHER;end

最佳答案

我认为这只是文档中的某种拼写错误。

您正在尝试在多行上创建一个字符串文字,为此您应该使用与在 tenderTypes 变量之后实例化的 posUrl 变量相同的方法,即关闭引号并使用 + 运算符与下一行连接。还有其他方法可以创建多行字符串,例如在每行末尾添加 \ ,以便解析器知道文字尚未完成。

您的代码将如下所示:

var tenderTypes =
   "com.squareup.pos.TENDER_CARD,\
    com.squareup.pos.TENDER_CARD_ON_FILE,\
    com.squareup.pos.TENDER_CASH,\
    com.squareup.pos.TENDER_OTHER";

或者这个:

var tenderTypes =
   "com.squareup.pos.TENDER_CARD," +
   "com.squareup.pos.TENDER_CARD_ON_FILE," +
   "com.squareup.pos.TENDER_CASH," +
   "com.squareup.pos.TENDER_OTHER";

关于javascript - 适用于 Android 的 Square Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60979617/

相关文章:

javascript - 如何编写名为 `add` 的单个函数。这样一旦它收到 2 个参数,它就会返回 2 个值的总和

java - 使用 SharedPreferences 和 Editor 作为成员

mobile - Square 是否有用于接受付款的 API?

ios - Square API + iOS : OAuth not working?

javascript - Bootstrap 崩溃不崩溃

javascript - 使用encodeURIComponent javascript将带有反斜杠、正斜杠和空格的url参数字符串转换为%5C、%2F和%20

javascript - 滚动到底部并返回后页面底部出现空白(移动)

java - Android:Dex 问题(意外的顶级异常:)

android - 检查两个 Bundle 对象在 Android 中是否相等?

java - Java中String[](带方括号)和String(不带方括号)的区别