Есть ли способ передать метаданные из API подписки в API зарядки? - PullRequest
0 голосов
/ 21 января 2019

У меня есть две функции, а именно: оплата и подписка, при успешной оплате бывает, я вставляю некоторые метаданные, смотрите ниже:

enter image description here

То же самое для функции подписки:

enter image description here

Тогда у меня есть отдельный файл, который я не буду публиковать здесь, потому что он вызывает только API списков платежей, чтобы получить все успешные платежи для проверки всех метаданных в нем, однако я заметил, что как только я создал подписку через API, это там доступны только метаданные1 и метаданные2.

Когда я просматриваю плату, созданную подпиской, к ее метаданным ничего не добавлялось. Как я могу прикрепить метаданные из подписки к соответствующему тарифу?

enter image description here

<?php
  require_once('stripe-php-master/init.php');
  require 'apiKeys.php';

$data = $_REQUEST['data'];

if(isset($data['stripeToken'])){
    create_customer($data);
}else{
    printResponse($data,"No Token");
}

//Create Customer
function create_customer($data){

    try{
        \Stripe\Stripe::setApiKey(SK_TEST_KEY);
        $customer = \Stripe\Customer::create(array(
            "description" => 'Widget Create Customer',
            "source" => $data['stripeToken'],
            "email" => $data['stripeEmail']
        ));

        $data['customerID'] = $customer->id;
        //create_charge($data);
        create_subscription($data);

    }catch(Exception $e){
        echo $e->getMessage();
        exit;
    }

}//create_customer

//Create charge
function create_charge($data){

    try{
        \Stripe\Stripe::setApiKey(SK_TEST_KEY);

        $settings = [
            'currency' => 'aud',
            'amount'=>5500,
            'description' => 'Widget Payment for ' .$data['widget_name'],
            'customer' => $data['customerID'],
            'metadata'=>["metadata1" => $data['metadata1'],"metadata2" => $data['metadata2']]
        ];

        // Get the payment token ID submitted by the form:
        $charge = \Stripe\Charge::create($settings);

        printResponse($data, $charge->status);

    }catch(Exception $e){
        printResponse($data,$e->getMessage());
        exit;
    }
}//create_charge

//Create subscription
function create_subscription($data){

    try{

        \Stripe\Stripe::setApiKey(SK_TEST_KEY);

        $settings = [
            'customer' => $data['customerID'],
            'metadata'=>["metadata1" => $data['metadata1'],"metadata2" => $data['metadata2']],
            'items' => [
                [
                  'plan' => $data['widget_class']
                ]
            ]

        ];

        $subscription = \Stripe\Subscription::create($settings);   
        printResponse($data,$subscription->status);

    }catch(Exception $e){
        printResponse($data,$e->getMessage());
        exit;
    }
}

function printResponse($data,$status){
     //CREATE Response JSON
    print_r(json_encode([
        'customer_name'=> $data['customer_name'],
        'metadata1' => $data['metadata1'],
        'metadata2'=> $data['metadata2'],
        'payment_status'=>$status
    ]));

}
?>

Я просто хочу, чтобы, когда кто-то подписывает плату за событие подписки, к нему были прикреплены метаданные1 и метаданные2.

...