小编Vol*_*kut的帖子

Trigger.IO应用内付款重复回调相同的orderid具有不同的签名

我们在trigger.io的支付模块中遇到了一个奇怪的问题.该流程与ios支付完美配合,但在Android中,一些应用程序内支付回调在同一秒内被调用两次.收据签名不同,但orderid,notificationid,purchasetoken和developerPayload都保持不变.当我们尝试验证收据时,结果是真实和正确的.但是当我们查看财务报告时,我们只看到一个付款而不是两个(因为它可能只是一个付款,但为什么不同的签名?).

为什么trigger.io调用两次回调导致产品被买两次?为什么android会为一次付款返回2个不同且可确认的收据?这是ororid方面或trigger.io方面的错误,因为我无法使用javascipt调用回调?或者这是一个已知的黑客企图?

我们还遇到了一个根本没有调用回调的情况,而信用卡被成功收费.这是一个错误还是有这种情况的解决方法?

这是我开始购买的代码:

if(forge.is.android())
forge.payments.purchaseProduct("someproductname", paymentSuccess, paymentError);
Run Code Online (Sandbox Code Playgroud)

这是回调函数:

function paymentCallback(data, confirm){

    forge.request.ajax({
        url: "someurl.php",
        dataType: "json",
        data:"function=logPayment&action=PaymentCallbackStart",
        success: function (data) {
            hideLoader();
        },
        error: function (error) {
            hideLoader();
        }
    }); 

    var productId = data.productId;
    var orderId = data.orderId;
    var signed_data;

    if(forge.is.android())
    {
        var state = data.purchaseState;
        var receipt = encodeURIComponent(data.receipt.signature);
        signed_data = encodeURIComponent(data.receipt.data);
    }
    else if(forge.is.ios())
    {
        var state = data.PurchaseState;
        var receipt = data.receipt.data;
    }

    forge.request.ajax({
        url: "someurl.php",
        dataType: "json",
        data:"function=logPayment&data=" +  encodeURIComponent("birthday=" +  gbirthday + "&birthhour=" + …
Run Code Online (Sandbox Code Playgroud)

android in-app-purchase trigger.io

5
推荐指数
1
解决办法
243
查看次数

标签 统计

android ×1

in-app-purchase ×1

trigger.io ×1