function testUpdateCustomerFromTransparentRedirect()
 {
     $customer = Braintree_Customer::create(array('firstName' => 'Mike', 'lastName' => 'Jonez'))->customer;
     $params = array('customer' => array('first_name' => 'Second'));
     $trParams = array('customerId' => $customer->id, 'customer' => array('lastName' => 'Penultimate'));
     $trData = Braintree_TransparentRedirect::updateCustomerData(array_merge($trParams, array("redirectUrl" => "http://www.example.com")));
     $queryString = Braintree_TestHelper::submitTrRequest(Braintree_TransparentRedirect::url(), $params, $trData);
     $result = Braintree_TransparentRedirect::confirm($queryString);
     $this->assertTrue($result->success);
     $customer = $result->customer;
     $this->assertequals('Second', $customer->firstName);
     $this->assertequals('Penultimate', $customer->lastName);
 }
Ejemplo n.º 2
0
 function updateCustomerViaTr($regularParams, $trParams)
 {
     Braintree_TestHelper::suppressDeprecationWarnings();
     $trData = Braintree_TransparentRedirect::updateCustomerData(array_merge($trParams, array("redirectUrl" => "http://www.example.com")));
     return Braintree_TestHelper::submitTrRequest(Braintree_Customer::updateCustomerUrl(), $regularParams, $trData);
 }
Ejemplo n.º 3
0
    function register_auto_payment_action($pack_id, $override_price = false, $return = true)
    {
        $this->_braintree();
        global $current_user;
        get_currentuserinfo();
        if ($current_user->ID) {
            $user_id = $current_user->ID;
        } else {
            $current_user = get_user_by('login', ym_request('username'));
            if ($current_user->ID) {
                $user_id = $current_user->ID;
            } else {
                echo 'bugger';
                return;
            }
        }
        $customer_id = get_user_meta($user_id, 'ym_braintree_customer_id', true);
        if ($customer_id) {
            // validate the customer is still in braintree
            try {
                $customer = Braintree_Customer::find($customer_id);
            } catch (Exception $e) {
                $customer_id = false;
            }
        }
        if (!$customer_id) {
            // create required
            // shunt the customer into braintree
            $result = Braintree_Customer::create(array('id' => 'ym_' . $current_user->ID, 'email' => $current_user->user_email));
            if ($result->success) {
                $customer_id = $result->customer->id;
                update_user_meta($user_id, 'ym_braintree_customer_id', $customer_id);
            } else {
                echo 'bugger';
                return;
            }
        }
        $code = 'buy_subscription_' . $pack_id . '_' . $user_id;
        // credit card form driver
        $trData = Braintree_TransparentRedirect::updateCustomerData(array('redirectUrl' => site_url('?ym_process=' . $this->code . '&action=process&code=' . $code), 'customerId' => $customer_id));
        $key = 'customer';
        $html = '
<form action="' . Braintree_TransparentRedirect::url() . '" method="post" id="' . $this->code . '_cc_form_pack_' . $pack_id . '" class="' . $this->code . '_cc_form" autocomplete="off">
	<input type="hidden" name="tr_data" value="' . htmlentities($trData) . '" />
	<input type="hidden" name="code" value="' . $code . '" />
	<div>
		<label for="braintree_credit_card_number">' . __('Credit Card Number', 'ym') . '</label>
		<input type="text" name="' . $key . '[credit_card][number]" id="braintree_credit_card_number" value=""></input>

		<label for="braintree_credit_card_ccv">' . __('Credit Card CCV', 'ym') . '</label>
		<input type="text" name="' . $key . '[credit_card][cvv]" id="braintree_credit_card_ccv" value=""></input>

		<label for="braintree_credit_card_exp">' . __('Credit Card Expiry (mm/yyyy)', 'ym') . '</label>
		<input type="text" size="7" maxlength="7" name="' . $key . '[credit_card][expiration_date]" id="braintree_credit_card_exp" value=""></input>
	</div>
	<input class="submit-button" type="submit" />
</form>
';
        if ($return) {
            return $html;
        } else {
            echo $html;
            return;
        }
    }