2

我试图使用此脚本获取有关付款状态(成功、失败、取消)的消息。

$status = $_POST['status'];

if $status == "success" (
?> CONGRATS! <? AND SO ON

但我没有成功。这是我第一次使用 instamojo,所以我恳请你们帮助我。

感谢和问候
Bhaamb

4

2 回答 2

2

考虑到您使用的是 PHP,那么您应该使用$_GETnot$_POST来获取查询参数的值。


目前,我们返回两个带有重定向 URL 的查询参数:payment_idstatus.

这里的status参数只是为了向后兼容,你不应该依赖它的值来标记支付成功,因为任何人都可以修改它的值。

正确的方法是使用payment_id并查询我们的 API 来获取付款详情。

示例响应可能如下所示:

{
    "payment": {
        "payment_id": "MOJO3815000J72853518",
        "quantity": 1,
        "status": "Credit",                <---- Payment status
        "link_slug": "hello-api-inr-link",
        "link_title": "Hello API INR Link",
        "buyer_name": "A Gehani",
        "buyer_phone": "+9100000000",
        "buyer_email": "akash@instamojo.com",
        "currency": "INR",
        "unit_price": "9.00",
        "amount": "9.00",
        "fees": "0.45",
        "shipping_address": null,
        "shipping_city": null,
        "shipping_state": null,
        "shipping_zip": null,
        "shipping_country": null,
        "discount_code": null,
        "discount_amount_off": null,
        "variants": [],
        "custom_fields": null,
        "affiliate_id": "hiway",
        "affiliate_commission": "3.00",
        "created_at": "2014-12-16T13:17:27.943Z"
    },
    "success": true
}

这里如果payment->的值status"Credit",则支付成功,否则不是。

同样,如果您使用的是 PHP,那么您可能需要使用我们的 API 包装器:Get Details of a Payment using Payment ID


请注意,API 也会返回"success": true,但不要将其与实际付款状态混淆。

于 2016-01-08T19:22:39.470 回答
1

检查url中的状态是否存在

if(isset($_GET['status']))
   $status =$_GET['status'];

现在检查状态是失败还是成功

if($status != 'failure')
{
   "redirect to success url"
}
else{
   "redirect to failure url"
}
于 2016-10-01T09:12:41.370 回答