120 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			120 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | require('vendor/autoload.php'); | ||
|  | 
 | ||
|  | Httpful\Bootstrap::init(); | ||
|  | RESTful\Bootstrap::init(); | ||
|  | Balanced\Bootstrap::init(); | ||
|  | 
 | ||
|  | print "create our new api key\n"; | ||
|  | $key = new Balanced\APIKey(); | ||
|  | $key->save(); | ||
|  | print "Our secret is " . $key->secret . "\n"; | ||
|  | 
 | ||
|  | print "configure with our secret " . $key->secret . "\n"; | ||
|  | Balanced\Settings::$api_key = $key->secret; | ||
|  | 
 | ||
|  | print "create our marketplace"; | ||
|  | $marketplace = new Balanced\Marketplace(); | ||
|  | $marketplace->save(); | ||
|  | 
 | ||
|  | if (Balanced\Merchant::me() == null) { | ||
|  |    throw new Exception("Balanced\Merchant::me() should not be null"); | ||
|  | } | ||
|  | 
 | ||
|  | print "What's my merchant? Easy: Balanced\Merchant::me(): " . Balanced\Merchant::me()->uri . "\n"; | ||
|  | 
 | ||
|  | if (Balanced\Marketplace::mine() == null) { | ||
|  |    throw new Exception("Balanced\Marketplace::mine() should never be null"); | ||
|  | } | ||
|  | 
 | ||
|  | print "What's my marketplace? Easy: Balanced\Marketplace::mine(): " .Balanced\Marketplace::mine()->uri . "\n"; | ||
|  | 
 | ||
|  | print "My marketplace's name is " . $marketplace->name . "\n"; | ||
|  | print "Changing it to TestFooey\n"; | ||
|  | $marketplace->name = "TestFooey"; | ||
|  | $marketplace->save(); | ||
|  | print "My marketplace name is now " . $marketplace->name . "\n"; | ||
|  | 
 | ||
|  | if ($marketplace->name != "TestFooey") { | ||
|  |    throw new Exception("Marketplace name is NOT TestFooey"); | ||
|  | } | ||
|  | 
 | ||
|  | print "Cool, let's create a card\n"; | ||
|  | $card = $marketplace->cards->create(array( | ||
|  |       "card_number" => "5105105105105100",  | ||
|  |       "expiration_month" => "12", | ||
|  |       "expiration_year" => "2015" | ||
|  | )); | ||
|  | 
 | ||
|  | print "Our card: " . $card->uri . "\n"; | ||
|  | 
 | ||
|  | print "Create out **buyer** account\n"; | ||
|  | $buyer = $marketplace->createBuyer("buyer@example.org", $card->uri); | ||
|  | print "our buyer account: " . $buyer->uri . "\n"; | ||
|  | 
 | ||
|  | print "hold some amount of funds on the buyer, let's say $15\n"; | ||
|  | $the_hold = $buyer->hold(1500); | ||
|  | 
 | ||
|  | print "ok, no more holds! let's capture it (for the full amount)\n"; | ||
|  | $debit = $the_hold->capture(); | ||
|  | 
 | ||
|  | print "hmm, ho much money do i have in escrow? it should equal the debit amount\n"; | ||
|  | $marketplace = Balanced\Marketplace::mine(); | ||
|  | if ($marketplace->in_escrow != 1500) { | ||
|  |    throw new Exception("1500 is not in escrow! This is wrong"); | ||
|  | } | ||
|  | print "I have " . $marketplace->in_escrow . " in escrow!\n"; | ||
|  | 
 | ||
|  | print "Cool. now let me refund the full amount"; | ||
|  | $refund = $debit->refund(); | ||
|  | 
 | ||
|  | print "ok, we have a merchant that's signing up, let's create an account for them first, let's create their bank account\n"; | ||
|  | 
 | ||
|  | $bank_account = $marketplace->createBankAccount("Jack Q Merchant", | ||
|  | 	      "123123123", /* account_number */ | ||
|  | 	      "123123123"  /* bank_code (routing number is USA)*/ | ||
|  | 	      ); | ||
|  | 
 | ||
|  | $identity = array( | ||
|  | 	  "type" => "person", | ||
|  | 	  "name" => "Billy Jones", | ||
|  | 	  "street_address" => "801 High St", | ||
|  | 	  "postal_code" => "94301", | ||
|  | 	  "country" => "USA", | ||
|  | 	  "dob" => "1979-02", | ||
|  | 	  "phone_number" => "+16505551234" | ||
|  | ); | ||
|  | 
 | ||
|  | $merchant = $marketplace->createMerchant('merchant@example.org',  | ||
|  | 	  $identity, | ||
|  | 	  $bank_account->uri | ||
|  | ); | ||
|  | 
 | ||
|  | print "our buyer is interested in buying something for $130\n"; | ||
|  | $another_debit = $buyer->debit(13000, "MARKETPLACE.COM"); | ||
|  | 
 | ||
|  | print "let's credit our merchant $110\n"; | ||
|  | $credit = $merchant->credit(11000, "Buyer purchase something on Marketplace.com"); | ||
|  | 
 | ||
|  | print "let's assume the marketplace charges 15%, so it earned $20\n"; | ||
|  | $mp_credit = $marketplace->owner_account->credit(2000, | ||
|  | 	   "Commission from MARKETPLACE.COM"); | ||
|  | 
 | ||
|  | print "ok, let's invalidate the card used so it cannot be used again\n"; | ||
|  | $card->is_valid = false; | ||
|  | $card->save(); | ||
|  | 
 | ||
|  | print "how do we look up an existing object from the URI?\n"; | ||
|  | $the_buyer = Balanced\Account::get($buyer->uri); | ||
|  | print "we got the buyer " . $the_buyer->email_address . "\n"; | ||
|  | 
 | ||
|  | $the_debit = Balanced\Debit::get($debit->uri); | ||
|  | print "we got the debit: " . $the_debit->uri . "\n"; | ||
|  | 
 | ||
|  | $the_credit = Balanced\Credit::get($credit->uri); | ||
|  | print "we got the credit: " . $the_credit->uri . "\n"; | ||
|  | 
 | ||
|  | print "and there you have it :)\n"; | ||
|  | 
 | ||
|  | ?>
 |