Я интегрировал Wepay payment gateway
, Но я столкнулся с проблемой, чтобы пройти json object to wepay
, Он всегда показывает неправильный формат JSON. Пожалуйста, посмотрите на приведенный ниже код.
$forca_a = array(
'debit_opt_in'=>true
);
$forca = json_encode($forca_a,JSON_FORCE_OBJECT);
$wepay_create_array = array(
'name' =>"xxxx",
'description' => "xxxxxxxxx xxxx",
'callback_uri' => "xxxxxxx",
'country' => "CA",
'currencies' => array('CAD'),
'country_options' => $forca,
'rbits'=> array(
array(
'receive_time'=>strtotime("now"),
'type' =>'website_uri',
'source' => 'partner_database',
'properties'=> array('uri'=>xxxxx)
)
)
);
Если я не пройду country_options
, кажется, работает, но если я передам этот параметр, он всегда дает мне сообщение об ошибке «Неверный формат JSON».
Я отправил электронное письмо в справочный центр Wepay. Они сказали мне, что вы передаете строку "country_options":"{"debit_opt_in":true}" <--- this is a string
Вместо "country_options":{"debit_opt_in":true} <--- this is a JSON object
, Так что я в замешательстве. Я понятия не имею, как передать объект JSON. Есть только способ и есть json_encode($object)
,
эй используйте код ниже, чтобы получить правильный JSON
<?php
$forca_a = array(
'debit_opt_in'=>true
);
// $forca = json_encode($forca_a);
$wepay_create_array = array(
'name' =>"xxxx",
'description' => "xxxxxxxxx xxxx",
'callback_uri' => "xxxxxxx",
'country' => "CA",
'currencies' => array('CAD'),
'country_options' => $forca_a,
'rbits'=> array(
array(
'receive_time'=>strtotime("now"),
'type' =>'website_uri',
'source' => 'partner_database',
'properties'=> array('uri'=>'xxxxx')
)
)
);print_r(json_encode($wepay_create_array));
?>
этот код даст следующий вывод json
{
"name": "xxxx",
"description": "xxxxxxxxx xxxx",
"callback_uri": "xxxxxxx",
"country": "CA",
"currencies": ["CAD"],
"country_options": {
"debit_opt_in": true
},
"rbits": [{
"receive_time": 1461561030,
"type": "website_uri",
"source": "partner_database",
"properties": {
"uri": "xxxxx"}
}]
}
Вам не нужно делать:
$forca = json_encode($forca_a,JSON_FORCE_OBJECT);
прежде чем положить его в $ wepay_create_array.
Перед отправкой запроса, я думаю, вы делаете json_encode($wepay_create_array)
и да, после этого у вас будет «строка» для ключа country_options.