paypal - 在 Titanium Appcelerator(合金框架)中使用 sideloader api 与 PayPal Here 集成

标签 paypal titanium appcelerator titanium-mobile titanium-alloy

我想使用 paypal sideloader api 来集成 PayPal Here,如下所述: https://github.com/paypal/here-sideloader-api-samples/blob/master/docs/README.md

有几件事我不确定它是如何工作的。有人可以帮助我理解它/指出正确的方向吗?

要在此处启动 PayPal,请使用以下 url:

paypalhere://takePayment?
accepted=cash,card,paypal
&returnUrl=my_registered_location://takePayment/{result}?Type={Type}&InvoiceId={InvoiceId}&Tip={Tip}&TxId={TxId}
&as=b64
&step=choosePayment
&payerPhone=4155551212
&invoice={ ... json snipped ... }

究竟如何“打开”这个 paypalhere:// 架构?理想情况下,我希望在我的 View 中有一个名为 Pay via PayPal Here 的按钮,单击后执行上述操作。

其次,注意如何有一个returnUrl?这是我的应用程序的自定义 url 架构。首先,如何注册自己的 url schema(例如 myapp://),然后实现 takePayment 方法来获取支付响应数据?

提前感谢您提供的任何帮助和提示。

最佳答案

是的,你是对的,添加一个按钮并调用一个类似的函数

function handlePaypal(){
     if (Ti.Platform.canOpenURL("paypalhere://")) {
         Ti.Platform.openURL("paypalhere://"+ yourstring);
     }
     ...
}

但是您需要将此架构添加到您的tiapp.xml 文件

<ios>
    <plist>
        <dict>
            <.....>
            <key>LSApplicationQueriesSchemes</key>
            <array>
                <string>paypalhere</string>
            </array>
            <....>
        </dict>
    </plist>
</ios>

已编辑

要处理 de URL 响应,您需要按如下方式处理打开事件:

如果你的App也是为Android设计的,你需要像下面这样读取接收意图数据,因为你使用的是Alloy,你需要放在app/alloy.js

if (OS_ANDROID) {
    Alloy.Globals.receivedURL = Ti.Android.currentActivity.intent.data;
}

最后在 index.js

的开头
$.index.addEventListener('open', function (e) {

    if (OS_ANDROID) {
       handleResponse(Alloy.Globals.receivedURL);
    } else if (OS_IOS) {
        //Here we have two cases: App was closed or App still running;
        handleResponse(Ti.App.getArguments().url);
        Ti.App.addEventListener('resume', function () {
            handleResponse(Ti.App.getArguments().url);
        }); 
    }
});

毕竟,您可以开发自己的 handleResponse 函数 :)

接收参数是其他应用的URL,现在只需要解析即可。

--

作为替代方案,从 5.2 版开始,Titanium 支持 Hyperloop [beta] 模块。您可以使用它来集成 native paypal-ios sdk到您的 Titanium App。也许它会更好地记录并且易于维护。您可以使用 CocoaPods 安装,并通过 Hyperloop 直接访问。如果您有兴趣,这是一个很好的起点:How to use Hyperloop in your Titanium App

关于paypal - 在 Titanium Appcelerator(合金框架)中使用 sideloader api 与 PayPal Here 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34721697/

相关文章:

paypal-rest-sdk - PayPal REST API - 计费协议(protocol)不返回 token

xcode - Appcelerator Studio 无法识别 xcode

java - android 打开带参数的url

尽管可用另一种货币的资金,但 PayPal 沙盒以一种货币的定期付款失败

php - Paypal IPN 自定义变量

javascript - IOS 的自定义图片库?

javascript - 使用 Appcelerator Titanium 将行添加到 sqlite 数据库时出错

ruby-on-rails - 设计和 iPhone 应用程序之间的 HTTP 身份验证

node.js - Appcelerator 错误无法建立隧道套接字,statusCode=400

java - 在 Titanium 中设置 Android Activity