ç°å¢ã®éžæ
ç§ãæåã«åºäŒã£ãã®ã¯ããã¹ãã£ã³ã°ã«ããã«éçºããŠãããã€ããããšã¯ããŸã䟿å©ã§ã¯ãªããšããããšã§ãã ãããŠããŠã§ãéçºè åãã«çŽ³å£«çšããããããŠã³ããŒãããããšã«ããŸããã åŠçæ代ããããã³ã¯ãŒãšããååãèšæ¶ã«æµ®ãã³ãŸããã è©ŠããŸããããããã«æåŠããŸããã 圌ã¯èªåã®äººçãçããŠãããApache confãã¡ã€ã«å ã®äœããæžãæããŠèšå®ããããšãããšãã圌ã¯èªåã®è£éã§ãããæ¶å»ãããæ¶å»ããŸããã§ããã ã€ãŸããç§ã¯ãããèšå®ããªãã£ããã圌ãç§ãããããšãå€æããã ãç§ã銬ãæã£ãŠããã-ããã¯æ°åã«ãªãã ãã...ããšæãåºããã ãã®çµæãç§ã¯ãã¡ãã圌ãæã¡è² ãããŸããããããåçŽãªWAMPãµãŒããŒãèŠã€ããããšã«ããŸããã Denwerã¯è¯ã補åã§ãããããã«å察ãããã®ã¯äœããããŸãããããã¡ãã¯ã¹ãããã¥ã¢ã«ãèªã¿ãããããŸããã§ããã
Wiki 㧠WAMPã®ãªã¹ããå«ãããŒãžãèŠã€ããããããæŽçãå§ããŸããã éžæã®äž»ãªåºæºã¯ãããžã§ã¯ãã®ãµããŒãæ§ã§ããããã®ãããã«ãããŒãžã§ã³ã¯å€ããå°ãªããæ°é®®ã§ãããã€ã³ã¹ããŒã«/èµ·åã容æã§ããã ãã®çµæã The Uniform Serverãå®å šã«æšå¥šã§ããŸã ã ã€ã³ã¹ããŒã«ã¯äžèŠã§ãïŒã¢ãŒã«ã€ãã解åããã ãã§ãïŒãèµ·åæã«ãã¬ã€ã«ãã³ã°ãã=ã軜ãæŒããšèµ·åããŸãã 圌ã¯è£å®ãããªãã£ãã®ã§ãç§ã¯åœŒã«æ±ºçãã€ããŸããã
OAuthèªèšŒ
ç§ã¯æ瀺ãèªã¿ã ããã¥ã¡ã³ããããŠã³ããŒããããµãŒãã«ãæŽé²ããæŠéã«çªå ¥ããŸããã ããããæŠãã§ã¯ãOAuthèªèšŒã«ããã«è² ããŠããŸããŸããã OAuthã¯ããŠãŒã¶ãŒåãšãã¹ã¯ãŒããã¢ããªã±ãŒã·ã§ã³ã«å ¥åããã³ä¿åããã«ããŠãŒã¶ãŒã®ãµãŒãã¹/ã¢ã«ãŠã³ãã«ã¢ã¯ã»ã¹ããæ¹æ³ã§ãã ããã¯Twitterã®äœæè ããå±ãããã®ã§ã次ã®ãããªãã®ã§ãããµãŒãã¹ïŒãã®å Žåã¯Yandex.MoneyïŒã«ãªã¯ãšã¹ããè¡ãããŠãŒã¶ãŒã¯Yandex.MoneyãµãŒããŒã§ãŠãŒã¶ãŒå/ãã¹ã¯ãŒããå ¥åããã¢ããªã±ãŒã·ã§ã³ã«ã¢ã«ãŠã³ãã䜿çšããèš±å¯ãäžããŸãã ãã®åŸãYandex.MoneyãµãŒããŒã¯ã¢ããªã±ãŒã·ã§ã³ã«ãªãã€ã¬ã¯ãããåç¶æéãéåžžã«çãäžæã³ãŒããååŸããŸãã 次ã«ãYandex.Moneyãžã®å¥ã®èŠæ±ãéããŠããã®ã¿ã€ã ã³ãŒãããŠãŒã¶ãŒã®å®æ°ããŒã¯ã³ã«å€æŽããåå¡è§£é€ãšããŠããã¹ãŠã®éè·¯ãéããŠããŸãã
ããããOAuthèªèšŒãè¡ã£ãŠããéã«ãã»ãã¥ãªãã£ã®åé¡ã«ééããŸããã Yandex.MoneyãµãŒããŒã«ã¢ã¯ã»ã¹ããããšããŸããããPHPã¯æ±ãããšãèªãå§ãã蚌ææžã«ã€ããŠäœãèšããŸããã ã€ã³ã¿ãŒããããå°ã調ã¹ãŠã¿ããšãã¢ããªã±ãŒã·ã§ã³ããµãŒããŒã®SSL蚌ææžã確èªããå¿ èŠãããããšã«æ°ä»ããŸããã ãŠãŒã¶ãŒã®å®å šã確ä¿ããããã«ããŸãããããšæã£ãã®ã§ãæ€çŽ¢ãç¶ããŸããã ããããRuNetã§ã®ãµãŒããŒèšŒææžæ€èšŒã®å®è£ ã®å¥å šãªäŸã¯ã»ãšãã©ãããŸããã é çªã«èª¬æããŸãã
æåã«ããªã¯ãšã¹ããéä¿¡ãããšãã«ã³ãŒãã§èšŒææžæ€èšŒãç»é²ããå¿ èŠããããŸããã 蚌ææžæ€èšŒèŠæ±ã®éä¿¡ã«äœ¿çšããcURLã匷å¶ããã«ã¯ã©ãããã°ããã§ããïŒ ç§ã¯æ€çŽ¢ãéå§ãã蚌ææžãšã©ãŒã«é¢ããæãäžè¬çãªã¢ããã€ã¹ã§ããDISABLE Verificationã«é©ããŸããã ãããŠãããã¯å€ãã®ãµã€ãããã©ãŒã©ã ã§æäŸãããŠããŸãïŒããšãã°ã ãã¡ã ïŒã ãã©ãŒå šè¬ã æãé »ç¹ã«æäŸãããã³ãŒãã¯æ¬¡ã®ãšããã§ãã
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
ãããèŠããŠãåäŸãã¡ããããŠæ±ºããŠæžããªãã§ãã ããã ããããŠä»ãæ¯åãç§ãã¡ã¯ããªããå¿ããªããã°ãªããªãæªãèšèããã¹ãŠç¹°ãè¿ãã§ããããã è±èªã話ãã€ã³ã¿ãŒãããäžã§ãã¹ãŠãããã»ã©æªãããã§ã¯ãªãããšãç¥ã«æè¬ãããã¹ãŠã説æãããªã³ã¯ãèŠã€ããŸããã 圌ã¯ããã«æžãããŠããéãã«ãããŸããããããŠããã¯åããŸããã
次ã«ãYandex.Moneyã®å ¬é蚌ææžãèªå® ã«ä¿ç®¡ããå¿ èŠããã£ããããèŠæ±ãéä¿¡ãããšãã«æ¯èŒãããã®ããããŸããã ç§ã¯å®å šã«é ããŠããããã§ã¯ãããŸããããããã§ãç§ã«ã¯ããªãé£ããããã«æããŸããã SSLã䜿çšããéã«å°æ¥åœ¹ç«ã€ãããããŸããã httpsçµç±ã§ç®çã®ãµã€ãã«ã¢ã¯ã»ã¹ãã蚌ææžã確èªããŠãšã¯ã¹ããŒãããŸãã ãããããããã¯3ã€ãããã©ããå¿ èŠã§ããïŒ ãæ£ãããã€ãåããŸãã ãããã®2ã€ããããŸããçãäžã®ãã®ãåããŸããã 蚌ææ©é¢ïŒã«ãŒãïŒããã³äžéïŒYandexïŒã®èšŒææžããšã¯ã¹ããŒãããå¿ èŠãããããšãããããŸããã æçµèšŒææžã¯å¹Žã«1åå€æŽãããŸãããã§ãŒã³ã«å ¥åããåé¡ãçºçãããšãã«å€æŽãå¿ãããšãã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãŠãç ŽæããŸãã ãããã£ãŠãæå®ããã2ã€ã®èšŒææžã®ã¿ããšã¯ã¹ããŒããã1ã€ã®ããã¹ããã¡ã€ã«ã«ä¿åããã ãã§ãïŒ ã¹ã¯ãªãŒã³ã·ã§ãã ïŒã ç§ã®ã©ã€ãã©ãªã§ã¯ã圌ã¯ym.crtãšããŠè¡šç€ºãããŸã ã
ãã®åŸããªã¯ãšã¹ãã¯ç§ãç²åŸããŸããã ãã£ãïŒ ããã«æè¡ã®åé¡ã§ããã ããã¥ã¡ã³ãã§ã¯ãã¹ãŠãæ確ã§ããã å®éããããå®éã«ã³ãŒãããã¥ã¡ã³ãã«ã³ããŒããçç±ã§ãã ãŸãããªããžã§ã¯ããšããŠäœæããäºçŽãäœæããŸãã ç§ã®æèŠã§ã¯ããªããžã§ã¯ããæ±ãã®ã¯äŸ¿å©ã§äŸ¿å©ã§ãã
æå·å
æå·åã«ã¯ãŸã å°ããªåé¡ããããŸããã æåã«ããŠãŒã¶ãŒããŒã¯ã³ã®ä¿å/埩å ã¯ãæšæºã®Mcrypt PHPã©ã€ãã©ãªã«ãã£ãŠå®è£ ãããŸããã ããããçµå±ã®ãšããã圌女ã«ã¯åé¡ããããŸãã ããšãã°ãããã¥ã¢ã«ã«èšèŒãããŠããäŸãããå»æ¢ãããé¢æ°ã¯ãã ã¡ã«æ©èœããŸããã ä»ã®é¢æ°ã¯ãããããæ©èœãããããšããç§ã®æ¬²æ±ã«æºã¡ãŠããã倱æããã¢ãžã¥ãŒã«ã®åæåã«ã€ããŠã®ã¿è¿°ã¹ãŸããã ç解ããå¿ èŠããããŸããã ããããããã¹ãã¯ãã®ã©ã€ãã©ãªãããŸã奜ãã§ã¯ãªãããšãå€æããŸããã PHP 5.3ã§ãµã€ããäœæãããšãã«Mcryptã¢ãžã¥ãŒã«ããªãçç±ããã¹ãã£ã³ã°æ¥è ã®ãµããŒãã«å°ããŸããã 圌ãã¯ç§ã«ïŒéèªçã«ïŒçããŸããïŒã圌ã¯5.2ã§é·å¹Žãã°ããããŸãã-ã¢ãžã¥ãŒã«ãšããŠ5.3ã«èªåçã«è¿œå ããŸããã§ããã5幎ããšã«èšæ¶ãããŸãããåé¡ããããŸãããã PHPã«å¯Ÿç§°æå·åãå®è£ ããä»ã®äŸ¿å©ãªæšæºã©ã€ãã©ãªã¯èŠã€ãããŸããã§ããïŒOpenSSLã©ã€ãã©ãªããããŸãããããã«ã¯ãŸã£ããé©ããŠããŸããïŒã ãã®åŸãæå·åã©ã€ãã©ãªãphpseclibã«å€æŽããããšã«ããŸãã ãããã¯ãªãŒãã³ã§ãäžè¬çãªAESã¢ã«ãŽãªãºã ããµããŒãããŠããŸãã 圌女ã¯ããã«åé¡ãªã皌ãã ã
æ©èœãšäœ¿çšäŸ
ãŸãããç«ã®ãã¬ãŒãã³ã°ãããŸãã¯ããããã¹ããšãããã°ã®ããã«ãã©ã€ãã©ãªé¢æ°ã®åŒã³åºããè¡ãããŸããããã®åŸãèŠæ ãã®è¯ãã¬ã€ã¢ãŠãã®ããã«ã¬ã€ã¢ãŠãã䜿çšããã³ã¡ã³ãã§æºããããã©ã€ãã©ãªã®äœ¿çšäŸãåŒã³åºããŸããã
ãã®çµæã次ã®Yandex.Money APIé¢æ°ã®åŒã³åºããå®è£ ãããŸããïŒã¢ã«ãŠã³ãæ å ±ãååŒå±¥æŽãæäœã®è©³çŽ°æ å ±ãä»ã®ãŠãŒã¶ãŒãžã®ééã é·æãšæ©èœïŒ
- OAuthãŠãŒã¶ãŒèªèšŒã
- äœæ¥ã»ãã¥ãªãã£ïŒèšŒææžãã§ãŒã³ã®æ€èšŒããµããŒããããŠããŸãïŒ;
- äœæ¥ã®å©äŸ¿æ§ïŒãµãŒããŒã®å¿çã¯ãªããžã§ã¯ããšããŠè¡šãããŸãïŒããã³ã¯ã€ãã¯ã¹ã¿ãŒãã
- ããŒã¿ããŒã¹ã䜿çšããã«æå·åã䜿çšããŠãŠãŒã¶ãŒããŒã¯ã³ãä¿åããããã®æ¯èŒçå®å šã§ã·ã³ãã«ãªãœãªã¥ãŒã·ã§ã³ã ãã®ãœãªã¥ãŒã·ã§ã³ã®å®è£ ããªããžããªã«ç°¡åã«æžãæããããšãã§ããŸãã
ã©ã€ãã©ãªèªäœã¯ã ym.crt蚌ææžãã§ãŒã³ãã¡ã€ã«ãšã 次ãå«ãym.phpãã¡ã€ã«ã§ãã
- IYandexMoneyãœãããŠã§ã¢ã€ã³ã¿ãŒãã§ã€ã¹ã
- YandexMoneyã¡ã€ã³ã¯ã©ã¹ïŒã€ã³ã¿ãŒãã§ã€ã¹å®è£ ïŒ;
- ã¢ã¯ã»ã¹æš©ãæã€åæã¯ã©ã¹ïŒã¹ã³ãŒãïŒ;
- è£å©ã¯ã©ã¹ïŒAPIãžã®èŠæ±ã®çµæã®åºåã®å¿çãªããžã§ã¯ãïŒã
泚ïŒPHPããŒãžã§ã³5ãšãhttpãªã¯ãšã¹ãçšã®cUrlæšæºã©ã€ãã©ãªã䜿çšããŸãã
詳现ãªäŸãã€ã³ã¹ããŒã«ããŠèŠãŠããªã人ã®ããã«ãããã€ãã®èª²é¡ã瀺ããŸãã
APIãä»ããŠã¢ã«ãŠã³ãã§æäœãå®è¡ããã«ã¯ããŠãŒã¶ãŒã®èš±å¯ãã€ãŸãããŒã¯ã³ãååŸããå¿ èŠããããŸãã 次ã®åŒã³åºãã§åä¿¡ã§ããŸãïŒããšãã°ãã¢ã«ãŠã³ãæ å ±ãååŒå±¥æŽã衚瀺ããã¢ã¯ã»ã¹æš©ããããŸãïŒã
YandexMoney :: authorizeïŒConsts :: CLIENT_IDã 'account-info operation-history'ãConsts :: REDIRECT_URLïŒ; //次ã«ããªãã€ã¬ã¯ãããŒãžã§ãªããžã§ã¯ãã®äœæãšããŒã¯ã³ã®ååŸãéå§ããŸã $ ym = new YandexMoneyïŒå®æ°:: CLIENT_IDãå®æ°:: CERTIFICATE_CHAIN_PATHïŒ; $ token = $ ym-> receiveOAuthTokenïŒ$ _ GET ['code']ãConsts :: REDIRECT_URLïŒ;
ãªããžã§ã¯ã$ ymãäœæãããšãã¢ããªã±ãŒã·ã§ã³èå¥åãšèšŒææžãã§ãŒã³ãžã®ãµãŒããŒäžã®çµ¶å¯Ÿãã¹ïŒãã¡ã€ã«ym.crtïŒãæž¡ãããŸãã ãããšãå¥ã®ã¢ãžã¥ãŒã«ã¯éåžžãä»»æã®ã¢ãžã¥ãŒã«ã®å®æ°ïŒãã®äŸã§ã¯consts.phpïŒã«ç»é²ãããŸãã
ããã§ã¯ããŠãŒã¶ãŒã®ã¢ã«ãŠã³ãã«é¢ããæ å ±ãååŸããæ¹æ³ã瀺ããŸãããã åæ§ã«ããªããžã§ã¯ããäœæããŠããã¡ãœãããåŒã³åºãããŠãŒã¶ãŒããŒã¯ã³ãæž¡ããŸãã
$ ym = new YandexMoneyïŒå®æ°:: CLIENT_IDãå®æ°:: CERTIFICATE_CHAIN_PATHïŒ; $ accountInfoResponse = $ ym-> accountInfoïŒ$ããŒã¯ã³ïŒ; echo 'ã¢ã«ãŠã³ãçªå·ïŒ'ã $ accountInfoResponse-> getAccountïŒïŒã ã\ nã; echo 'BalanceïŒ'ã $ accountInfoResponse-> getBalanceïŒïŒã ã\ nã; echo 'é貚ã³ãŒãïŒ'ã $ accountInfoResponse-> getCurrencyïŒïŒã ã\ nã;
åä¿¡ããã¢ã«ãŠã³ãæ å ±ã
ç¶æ³ã¯ä»ã®èª²é¡ãšäŒŒãŠããŸãã
ãã®çµæã圌ãã¯ãã®ã©ã€ãã©ãªãããã°ããŒã SDKãšåŒã³ããããGitHubã«çœ®ãããšã«ããŸããã
ãæèŠããææ¡ããåŸ ã¡ããŠãããŸãããŸãããã©ãŒã¯ããã«ãªã¯ãšã¹ããã芧ããã ããŸãã