How to integrate square with Laravel - php

I have an app in Laravel and I am following this tutorial. I cloned a sample repo from here and When I try to make a pyament form this, it gives me the following response
Caught exception!
Response body:
object(stdClass)[6]
public 'errors' =>
array (size=1)
0 =>
object(stdClass)[7]
public 'category' => string 'INVALID_REQUEST_ERROR' (length=21)
public 'code' => string 'VALUE_TOO_LOW' (length=13)
public 'detail' => string '`amount_money.amount` must be greater than 100.' (length=47)
public 'field' => string 'amount_money.amount' (length=19)
Response headers:
array (size=12)
0 => string 'HTTP/1.1 400 Bad Request' (length=24)
'Content-Type' => string 'application/json' (length=16)
'Vary' => string 'Origin, Accept-Encoding' (length=23)
'X-Content-Type-Options' => string 'nosniff' (length=7)
'X-Download-Options' => string 'noopen' (length=6)
'X-Frame-Options' => string 'SAMEORIGIN' (length=10)
'X-Permitted-Cross-Domain-Policies' => string 'none' (length=4)
'X-Xss-Protection' => string '1; mode=block' (length=13)
'Date' => string 'Sat, 29 Oct 2016 08:23:51 GMT' (length=29)
'Keep-Alive' => string 'timeout=60' (length=10)
'Strict-Transport-Security' => string 'max-age=631152000' (length=17)
'content-length' => string '161' (length=3)
It worked when i tried the sandbox.
How can I make square to charge any amount that is less than USD 100?
How can I validate the card i.e. in the form given in the github repo, they don't ask for card holder name?
How can I integrate other payment methods with square like cash or cheque?

It sounds like you are trying to make a web based point of sale. To answer your questions:
The minimum charge for Credit Cards, both in the Square Register app and the API is $1.00 (the 100 amount includes cents)
The cards are primarily validated with CVV and postal code, which you should see as required fields in the form.
At this time you cannot create payments for other tender types like cash or check through the API. (This is primarily because our transaction APIs are used for e-commerce exclusively, while custom point of sales are usually created with our Register APIs)

Related

Php get_meta_tags doesn't getting result (help)

I want to pass user input youtube url and get keyword or tags in result.
But i don't know what is wrong.
When i click on submit button nothing happens
<?php if( isset($_GET['submit']) ){ $yt = htmlentities($_GET['yt']);
$tags = get_meta_tags('$yt');
echo
$tags['keywords']; // php documentation ?>
Html
<input type="text" name="yt" id="yt" placeholder="https://youtu.be/jhCD4yCcogE" value="" />
</form>
<input type="submit" name="Submit"/>
Thanks in advance
Here is a working example
<form >
<input type="text" name="yt" id="yt" placeholder="https://youtu.be/jhCD4yCcogE" value="https://youtu.be/jhCD4yCcogE" />
<input type="submit" name="submit"/>
</form>
if (isset($_GET['submit']) && $yt = htmlentities($_GET['yt'])) {
$tags = get_meta_tags($yt);
var_dump($tags);exit;
}
There are 3 small mistakes in your code:
Your submit name is Submit you are checking submit
Your submit input located outside of <form>
You are using $yt a little bit wrong. You don't need to wrap it with '$yt' if you want to send a variable as an argument to the function.
Here is what I'm getting now after submitting this form
array (size=22)
'theme-color' => string '#ff0000' (length=7)
'title' => string 'Google My Business Website Tutorial | How to Create free website of Google my business 2020' (length=91)
'description' => string 'Learn how to create google my business website in 5 minutes (complete tutorial). In tutorial will know about description, how to google my business edit with...' (length=160)
'keywords' => string 'Google My Business Website Tutorial google my business website builder tutorial, free website, google my business, How To Create a Free Website For Google My...' (length=160)
'twitter:card' => string 'player' (length=6)
'twitter:site' => string '#youtube' (length=8)
'twitter:url' => string 'https://www.youtube.com/watch?v=jhCD4yCcogE' (length=43)
'twitter:title' => string 'Google My Business Website Tutorial | How to Create free website of Google my business 2020' (length=91)
'twitter:description' => string 'Learn how to create google my business website in 5 minutes (complete tutorial). In tutorial will know about description, how to google my business edit with...' (length=160)
'twitter:image' => string 'https://i.ytimg.com/vi/jhCD4yCcogE/maxresdefault.jpg' (length=52)
'twitter:app:name:iphone' => string 'YouTube' (length=7)
'twitter:app:id:iphone' => string '544007664' (length=9)
'twitter:app:name:ipad' => string 'YouTube' (length=7)
'twitter:app:id:ipad' => string '544007664' (length=9)
'twitter:app:url:iphone' => string 'vnd.youtube://www.youtube.com/watch?v=jhCD4yCcogE&feature=applinks' (length=70)
'twitter:app:url:ipad' => string 'vnd.youtube://www.youtube.com/watch?v=jhCD4yCcogE&feature=applinks' (length=70)
'twitter:app:name:googleplay' => string 'YouTube' (length=7)
'twitter:app:id:googleplay' => string 'com.google.android.youtube' (length=26)
'twitter:app:url:googleplay' => string 'https://www.youtube.com/watch?v=jhCD4yCcogE' (length=43)
'twitter:player' => string 'https://www.youtube.com/embed/jhCD4yCcogE' (length=41)
'twitter:player:width' => string '1280' (length=4)
'twitter:player:height' => string '720' (length=3)

accessing google calendar data

I'm trying to get some basic event info from a public google calendar. In PHP it looks like this:
$xml = simplexml_load_file('http://www.google.com/calendar/feeds/[username]/public/basic?start-min=2014-01-01T00:00:00&start-max=2016-03-24T23:59:59');
var_dump($xml);
This brings back the XML data as expected, with the event data.
public 'id' => string 'http://www.google.com/calendar/feeds/[username]/public/basic/k524jsujs242bag0fsqfveiij8' (length=98)
public 'published' => string '2014-01-29T21:04:51.000Z' (length=24)
public 'updated' => string '2014-01-29T22:12:20.000Z' (length=24)
public 'category' =>
object(SimpleXMLElement)[1996]
public '#attributes' =>
array (size=2)
'scheme' => string 'http://schemas.google.com/g/2005#kind' (length=37)
'term' => string 'http://schemas.google.com/g/2005#event' (length=38)
public 'title' => string 'busy' (length=4)
public 'summary' => string 'When: Thu Jan 30, 2014 11am to 12pm PST<br>' (length=49)
My problem is that in the events, none of the Titles are populated-- they all simply show "busy", even though there is a valid title saved in the actual calendar event.
Anyone know how to get the actual event title?
Problem was that the calendar, while public, wasn't set in the Google Apps admin to share ALL event data.
See here for more info: https://productforums.google.com/forum/#!topic/calendar/-YcGbl1uw5Y

MailChimp API listStaticSegments is always empty

I have created several static Segments in Mailchimp for a List.
I am writing some PHP to create campaigns, but I am stuck on a hurdle early on.
I am using v1.3 of the MailChimp API
$api = new MCAPI( $this->config['api_key'] );
$lists = $api->listStaticSegments( $list_id );
var_dump( $api );
var_dump( $lists );
Results:
object(MCAPI)[39]
public 'version' => string '1.3' (length=3)
public 'errorMessage' => string '' (length=0)
public 'errorCode' => string '' (length=0)
public 'apiUrl' =>
array (size=4)
'scheme' => string 'http' (length=4)
'host' => string 'api.mailchimp.com' (length=17)
'path' => string '/1.3/' (length=5)
'query' => string 'output=php' (length=10)
public 'timeout' => int 300
public 'chunkSize' => int 8192
public 'api_key' => string 'XXX' (length=XX)
public 'secure' => boolean false
array (size=0)
empty
I am expecting $lists to have 10 items in an array.
When I log into MailChimp and check the API Account API Keys page, I can see there are requests but there are no responses.
Ah ha. The problem was I had no static lists. The lists that I had created were dynamic segments (auto updating) , so therefore I must use campaignSegmentTest to generate the same criteria for the dynamic segments.
http://apidocs.mailchimp.com/api/1.3/campaignsegmenttest.func.php
Further research on the Google Mailchimp forum:
https://groups.google.com/forum/#!msg/mailchimp-api-discuss/63DLfYq7ydI/jyGASmUxK8AJ

Whats wrong with this SetExpressCheckout request for recurring payments?

OK, PayPal's docs and examples are pain awful so I hope someone else could help me figure this out. I'm doing a PayPal SetExpressCheckout request using their NVP API. It seems that my code produces one-time payment and not a subscription (which I figured out when receiving IPNs in the single-payment format, not subscription format, also on the sandbox buyer/seller panel in paypal there is nothing that says that the payments in the history are recurring), so I want to know what am I doing wrong. Those are the key => value pairs that I use, of course I implode and send them to PayPal in the right manner - as I said it works but not the way I want it.
array
'METHOD' => string 'SetExpressCheckout' (length=18)
'PAYMENTREQUEST_0_AMT' => string '3.99' (length=4)
'PAYMENTREQUEST_0_CURRENCYCODE' => string 'USD' (length=3)
'PAYMENTREQUEST_0_PAYMENTACTION' => string 'Sale' (length=4)
'PAYMENTREQUEST_0_INVNUM' => int 93
'PAYMENTREQUEST_0_CUSTOM' => string '394mtrf1h5lfdeehvgrferk1n1' (length=26)
'LOCALECODE' => string 'EN' (length=2)
'NOSHIPPING' => int 1
'REQCONFIRMSHIPPING' => int 0
'RETURNURL' => string 'http://MYDOMAINXXXX.COM/payPal/return' (length=44)
'CANCELURL' => string 'http://MYDOMAINXXXX.COM/upgrade' (length=38)
'ALLOWNOTE' => int 0
'LANDINGPAGE' => string 'Billing' (length=7)
'EMAIL' => string 'dimitar#instinctiv.com' (length=22)
'BILLINGPERIOD' => string 'Month' (length=5)
'BILLINGFREQUENCY' => int 1
'PROFILESTARTDATE' => string '2011-07-26' (length=10)
'L_BILLINGTYPE0' => string 'RecurringPayments' (length=17)
'L_BILLINGAGREEMENTDESCRIPTION0' => string 'Basic Subscription - 25GB' (length=34)
'VERSION' => string '63.0' (length=4)
'USER' => string 'pro_1307543338_biz_api1.gmail.com' (length=33)
'PWD' => string 'XXXXXXXXX' (length=10)
'SIGNATURE' => string 'AdTGraIKTCQ-O2lYSLlGJVfeJ1FWAKhC6Y8qZZxqGGkKkccrGxO45emb' (length=56)
I suspect the problem might be PAYMENTREQUEST_0_AMT and the other PAYMENTREQUEST_N_XXX keys, as in the PayPal docs I see that "PAYMENTREQUEST_N_AMT" "SHOULD BE" set to 0 for recurring payments, but also in the docs they say that "AMT is used to point out the amount to be billed on each billing cycle and is deprecated, to use PAYMENTREQUEST_N_AMT instead"!?
Any help is appreciated. If you need more specific info I will provide everything, just add a comment.
You still have to call CreateRecurringPaymentsProfile to create the recurring payments profile. If you don't want to bill an initial amount, you could leave the AMT set to '0' for your SetExpressCheckout API call. See also https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_CreateRecurringPayments and Table 4.2 in https://www.paypalobjects.com/en_US/ebook/PP_ExpressCheckout_IntegrationGuide/RecurringPayments.html

Which options can you pass as the third parameter of Mage::run()?

Magento is started by running Mage::run() in index.php. Mage::run has three parameters: $code, $type, and $options. The first two are well-documented but I can't find anything about the third: $options.
I did read somewhere that you can move your etc directory to another place, but what other options can I set? I hope I can set the theme package; that's what I have been looking for.
I haven't personally used the third argument but after some investigation I've found out that they are used to set the Mage_Core_Model_Config options:
I've made a var_dump with the options and it looks something like this:
//excerpt from var_dump() of Mage_Core_Model_Config_Options
protected '_data' =>
array
'app_dir' => string '/var/www/magento/app' (length=36)
'base_dir' => string '/var/www/magento' (length=32)
'code_dir' => string '/var/www/magento/app/code' (length=41)
'design_dir' => string '/var/www/magento/app/design' (length=43)
'etc_dir' => string '/var/www/magento/app/etc' (length=40)
'lib_dir' => string '/var/www/magento/lib' (length=36)
'locale_dir' => string '/var/www/magento/app/locale' (length=43)
'media_dir' => string '/var/www/magento/media' (length=38)
'skin_dir' => string '/var/www/magento/skin' (length=37)
'var_dir' => string '/var/www/magento/var' (length=36)
'tmp_dir' => string '/var/www/magento/var/tmp' (length=40)
'cache_dir' => string '/var/www/magento/var/cache' (length=42)
'log_dir' => string '/var/www/magento/var/log' (length=40)
'session_dir' => string '/var/www/magento/var/session' (length=44)
'upload_dir' => string '/var/www/magento/media/upload' (length=45)
'export_dir' => string '/var/www/magento/var/export' (length=43)

Categories