Интеграция Paymaya в PHP

Я пытаюсь создать клиента в PayMaya, используя curl в php. Я следую этой документации http://developers.paymaya.com.payment-vault.s3-website-ap-southeast-1.amazonaws.com/#card-vault-customers-post

но он не возвращает правильный ответ (ничего не возвращает)

<?php
require_once(DIR_VENDOR . 'PayMaya-PHP-SDK-master/sample/autoload.php');

Class Paymaya {

    public function paymayaInit(){
        PayMayaSDK::getInstance()->initCheckout("pk-nRO7clSfJrojuRmShqRbihKPLdGeCnb9wiIWF8meJE9", "sk-jZK0i8yZ30ph8xQSWlNsF9AMWfGOd3BaxJjQ2CDCCZb", "SANDBOX");
    }

    public function createCustomer(){
        $this->paymayaInit();

        // $ch = curl_init("https://pg-sandbox.paymaya.com/payments/v1/customers");
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, "https://pg-sandbox.paymaya.com/payments/v1/customers");
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Authorization: Basic c2stOWxSbUZUVjhCSWR4b1hXbTVsaURBbEtGMHlMNGdaendtRFFBbW52eFdPRjo = "));

        curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);

        $body = array(
                  "firstName" => "Ysa",
                  "middleName" => "Cruz",
                  "lastName" => "Santos",
                  "birthday" => "1987-10-10",
                  "sex" => "F",
                  "contact" => array(
                                    "phone" => "+63(2)1234567890",
                                    "email" => "[email protected]"
                                  ),
                  "billingAddress" => array(
                                    "line1" => "9F Robinsons Cybergate 3",
                                    "line2" => "Pioneer Street",
                                    "city" => "Mandaluyong City",
                                    "state" => "Metro Manila",
                                    "zipCode" => "12345",
                                    "countryCode" => "PH"
                                  ),
                  "metadata" => array()
                );

        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($body));
        $response = curl_exec($ch);
        curl_close($ch);

        // die(print_r($response));
        return json_decode($response);
    }

}

вот мой класс. Кто-нибудь уже пробовал интегрировать Paymaya в php? также я должен прокомментировать пространство имен в PayMayaSDK.php, чтобы иметь возможность использовать класс PayMayaSDK

Вы пробовали проверять $response без декодирования json?

Justinas 15.05.2018 09:47

да, он по-прежнему ничего не возвращает

mendz 15.05.2018 09:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
885
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Спасибо за ваш учетные данные размещены в вопросе. Я сделал несколько запросов и обнаружил, что не так.

Прежде всего, я использовал curl_error($ch), чтобы выяснить, в чем была ошибка.

Это The requested URL returned error: 400 Bad Request.

Проблема в том, что вы устанавливаете Content-Type как json, но отправляете запрос с кодировкой URL.

Измените http_build_query на json_encode

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://pg-sandbox.paymaya.com/payments/v1/customers");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Authorization: Basic c2stOWxSbUZUVjhCSWR4b1hXbTVsaURBbEtGMHlMNGdaendtRFFBbW52eFdPRjo = "));

curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);

$body = array(
    "firstName" => "Ysa",
    "middleName" => "Cruz",
    "lastName" => "Santos",
    "birthday" => "1987-10-10",
    "sex" => "F",
    "contact" => array(
        "phone" => "+63(2)1234567890",
        "email" => "[email protected]"
    ),
    "billingAddress" => array(
        "line1" => "9F Robinsons Cybergate 3",
        "line2" => "Pioneer Street",
        "city" => "Mandaluyong City",
        "state" => "Metro Manila",
        "zipCode" => "12345",
        "countryCode" => "PH"
    ),
    "metadata" => array()
);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
echo __FILE__."@".__LINE__."<pre>";
var_dump($response, curl_error($ch));
echo "</pre>";
curl_close($ch);

все в порядке, сэр, учетные данные предназначены для тестовой среды, предоставленной только на веб-сайте PayMaya. Я также пробовал использовать curl_error (), но моя ошибка отличается от "Проблема с сертификатом SSL: невозможно получить сертификат локального эмитента"

mendz 16.05.2018 08:02

@mendz Попробуйте отключить проверку SSL stackoverflow.com/questions/15135834/…

Justinas 16.05.2018 09:44

вау, спасибо, братан, интересно, возможно ли это, ха-ха. Спасибо

mendz 17.05.2018 06:35

Другие вопросы по теме