2016-07-20 7 views
-2

私は決済ゲートウェイと私のチェックアウトページを接続しようとしています。このため私はPHPのCurlを使ってレスポンスを生成しています。レスポンスにはさまざまな支払いの詳細が含まれていますが、リダイレクトのために「longurl」に格納されているURLのみを取得する必要があります。jsonの文字列から特定の部分を選択してください

{ "success": true, "payment_request": { "id": "9f999fc8407d473c8c8f910e8398a527", "phone": "+917894561230", "email": "[email protected]", "buyer_name": "", "amount": "798.00", "purpose": "ad", "status": "Pending", "send_sms": true, "send_email": true, "sms_status": "Pending", "email_status": "Pending", "shorturl": null, "longurl": "https://www.instamojo.com/@mghj/9f999fc8407d473c8c8f910e8398a527", "webhook": "http://www.example.com/webhook/", "created_at": "2016-07-20T16:53:12.349Z", "modified_at": "2016-07-20T16:53:12.349Z", "allow_repeated_payments": false }

<?php 
$payer_name = $_POST['name']; 
$amt = $_POST['net_amt']; 
$amt = (int)$amt; 
$payer_email = $_POST['email']; 
$payer_no = $_POST['mobno']; 
$payer_no = (int)$payer_no; 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, 'https://www.instamojo.com/api/1.1/payment-requests/'); 
curl_setopt($ch, CURLOPT_HEADER, FALSE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
curl_setopt($ch, CURLOPT_HTTPHEADER, 
      array("X-Api-Key:39ae74945179d56e3", 
        "X-Auth-Token:21f3446b20aab6")); 
$payload = Array(
    'purpose' => 'ad', 
    'amount' => $amt, 
    'phone' => $payer_no, 
    'buyer_name' => $payer_name, 
    'redirect_url' => 'http://www.example.com/redirect/', 
    'send_email' => true, 
    'webhook' => 'http://www.example.com/webhook/', 
    'send_sms' => true, 
    'email' => '[email protected]', 
    'allow_repeated_payments' => false 
); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($payload)); 
$response = curl_exec($ch); 
curl_close($ch); 
echo $response; 
?> 
+2

あなたはjsonを直接処理しません。それはトランスポート形式です。そのjsonをネイティブのデータ構造にデコードし、その構造を他のものと同様に処理します。 –

答えて

3

まず、アレイにそれを復号します。アクセスしてください。

$result = json_decode($response,true); 

echo $result['payment_request']['longurl']; 
+0

新しいウィンドウでリンクを開こうとしたときにポップアップとしてブロックされました。これを避ける方法を提案してください。@ Mojtaba 'echo" "; ' – Aditya

+0

@Aditya、ブラウザのポップアップブロッカーを制御することはできません。代わりに、jqueryモーダルのようなjavascriptポップアップを使用しています。ネイティブポップアップはブラウザによってブロックされる可能性があります – Mojtaba

関連する問題