PayPalã®ä½¿ãæ¹ ãã®ï¼ - Express Checkout APIã«ãã課éã·ã¹ãã ã®å®è£ 解説
ååã®è¨äºãPayPal APIの使い方 - SandboxのアカウントでCheckout Expressを試してみたãã§PayPalãµã³ãããã¯ã¹ã§ã¢ã«ã¦ã³ããä½æãã¦ãExpress Checkoutã®Integration Wizardãå©ç¨ãã¦ã·ã³ãã«ãªèª²éã¢ããªã±ã¼ã·ã§ã³ã®ãµã³ãã«ãä½æãã¦ã¿ã¾ããã
ãµã³ãã«ãåãããã ãã ã¨å¿ç¨ãå¹ããªãã®ã§ãExpress Checkoutã使ãããã«èªãå¿ è¦ã®ãã以ä¸ã®ããã¥ã¡ã³ãã®å 容ãç°¡åã«ã¾ã¨ãã¦ã¿ã¾ããã
PayPal Documentation and Manuals:å
¨ããã¥ã¢ã«ã®ãªã³ã¯é
ãhttps://www.x.com/community/ppx/documentation#ec
Express Checkout Integration Guide:Express Checkoutã®æ¦è¦ã¨å®è£
ã®ã¹ã¿ã¼ãã¬ã¤ããNVP APIã®åºæ¬çãªä½¿ãæ¹ã«ã¤ãã¦èª¬æããã¦ãã¾ãã
https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf
HTMLçã¯ãããã¾ãã
1.Introducing Express Checkout
https://cms.paypal.com/ca/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_ECGettingStarted
2.Getting Started With Express Checkout
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_ECSimpleIntegration
Name-Value Pair (NVP) API Developer Guide and Reference: NVPã®APIãªãã¡ã¬ã³ã¹ãIntegration Wizardã§ä½æãããµã³ãã«ã¯NVP APIãå©ç¨ãã¦ãã¾ã*1ã
ãhttps://cms.paypal.com/cms_content/US/en_US/files/developer/PP_NVPAPI_DeveloperGuide.pdf
Express Checkoutã¨ã¯ããããä½ãï¼
å®è£
ã®èª¬æã®åã«ãPayPalã®æ±ºæ¸ã½ãªã¥ã¼ã·ã§ã³ã¨åAPIã®é¢ä¿ããã¾ãã¡åãããªãã£ãã®ã§æ´çãã¦ã¿ã¾ããã
主ãªAPIã«ã¤ãã¦ã®ã¿è§£èª¬ãã¦ãã¾ãã
Adaptive Payments API
TechCrunchã«è§£èª¬ãããã¾ãã
http://jp.techcrunch.com/archives/20090723the-online-payment-wars-continue-paypal-officially-announces-flexible-api/
Adaptive Payments APIãå©ç¨ããã¨Paypalã¨åæ§ã®ééã·ã¹ãã ãèªåã®ãµã¤ãä¸ã«æ§ç¯ãããã¨ãã§ããããã§ãã
Website Payments Standard API
æ¥æ¬ã®ãµã¤ãã®æ±ºæ¸ã½ãªã¥ã¼ã·ã§ã³ä¸è¦§ã§ã¯ãã¦ã§ã ãã¤ã¡ã³ã ã¹ã¿ã³ãã¼ããã¨ç´¹ä»ããã¦ããæ©è½ãæä¾ããAPIã§ãã
PayPalãã¿ã³ããPayPalã®ç»é¢ã®ã¿ã§æ¯æããå®çµãããä¸çªã·ã³ãã«ãªå®è£
æ¹æ³ã§ãã
Express Checkout API
ã·ã§ããã³ã°ã«ã¼ãã®æ±ºæ¸å¦çããAPIãå©ç¨ãã¦ä½ãå ´åã¯Express Checkout APIãå©ç¨ãã¾ãã
åç´ãªç©ã®å£²ãè²·ããå¯ä»ãªããã¦ã§ã ãã¤ã¡ã³ã ã¹ã¿ã³ãã¼ããã§ãå®è£
å¯è½ã§ããããå®ææ¯æã*2ããããªãã¡ã¬ã³ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã(PayPalã®æ¿èªãå¿
è¦)ãå®è£
ãããå ´åã«ã¯ãExpress Checkout APIã§å®è£
ããå¿
è¦ãããã¾ãã
Express Checkoutãå®è£
ãããµã¤ãã®ä¾ãåç»ä»ãã§è§£èª¬ãã¦ãããã¼ã¸ããã£ãã®ã§ãåèã«ããã¦ããã ãã¾ããã
ãPayPal Express Checkout ãã¤ãã«ã®ã¨ã¯ã¹ãã¬ã¹ãã§ãã¯ã¢ã¦ãã¨ã¯ï¼ã
http://www.ds-style.com/blog/2009/08/19/paypal-express-checkout/
20110615æ¥è¿½è¨
å®ææ¯æãã¯ã¦ã§ããã¤ã¡ã³ãã¹ã¿ã³ãã¼ãã§ãSubscribeãã¿ã³ã§å®è£
ã§ãã¾ããã
https://www.paypal.com/cgi-bin/webscr?cmd=_pdn_subscr_techview_outside
Express Checkoutã®å®è£ ã®æµã
ã§ã¯ãããããååã®ããã°ã§ä½æãããµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ãä¾ã«å®è£ 解説ããã¦ããã¾ãã
ååã®ããã°ã§ä½æããã½ã¼ã¹ã³ã¼ãã¯Githubãåç
§ãã ããã
ã½ã¼ã¹ã³ã¼ãï¼https://github.com/hrendoh/PayPal-Express-Checkout-example
0. NVP APIã®åºæ¬
PayPal APIã¯NVP APIã¨SOAP APIãããã¾ãããä»åã®Integration Wizardã§ä½æãããµã³ãã«ã¯NVP APIãå©ç¨ãã¾ãã
Express Checkout APIãå©ç¨ããããã«ã¯ãã¾ãNVP APIã«ã¤ãã¦ç解ãã¦ããå¿
è¦ãããã¾ãã
NVP APIã®ãªã¯ã¨ã¹ãå½¢å¼
NVPã¯ãName Value Pareã®ç¥ã§ããã¤ã¾ãAPIã®å½¢å¼ã¯ã·ã³ãã«ãªã¯ã¨ãªã¼ãã©ã¡ã¼ã¿å½¢å¼ã«ãªãã¾ãã
FIRSTNAME=Robert&MIDDLENAME=Herbert&LASTNAME=Moore
APIã¨ã³ããã¤ã³ã
APIã®ãªã¯ã¨ã¹ãURL以ä¸ã«ãªãã¾ãã
APIã®å®è¡ã¯ããã®URLã«å¯¾ãã¦ãã©ã¡ã¼ã¿ãPOSTãã¾ãã
APIèªè¨¼ãã©ã¡ã¼ã¿
APIã®èªè¨¼ã¯ãAPI Signature(ç½²å)ã¾ãã¯API Certitificate(証ææ¸)ã®2ã¤ã®æ¹æ³ãããã¾ãããIntegration Wizardã§ä½æãããµã³ãã«ã¯Signature(ç½²å)ã®æ¹ãå©ç¨ãåæã¨ãã¦ãã¾ãã
Signatureãå©ç¨ããèªè¨¼ã¯ã以ä¸ã®ãã©ã¡ã¼ã¿ãå¿ é é ç®ã¨ãªãã¾ãã
USER=apiUsername &PWD=apiPassword &SIGNATURE=apiSignature &VERSION=56.0
- USER: API ã¦ã¼ã¶å
- PWD: API ãã¹ã¯ã¼ã
- SIGNATURE: API ç½²å
- VERSION: APIã®ãã¼ã¸ã§ã³
API Signatureã®åå¾ã¯ãSandboxã®å ´åãã¡ãã¥ã¼ã®[API Credentials]ã§ç¢ºèªã§ãã¾ãã
ã¾ããã¢ã«ã¦ã³ãã®ç»é¢ã§ã¯ä»¥ä¸ã®æé ã§ç¢ºèªã§ãã¾ãã
- [My Account]->[Profile]->[API Access]ãéã
- Option2ã®[View API Signature]ãªã³ã¯ãã¯ãªãã¯
NVP APIéä¿¡ã®å
±éå¦ç
APIå®è¡ã®å
±éå¦çã¯paypalfunctions.phpã«è¨è¿°ããã¦ãã¾ãã
APIã®èªè¨¼ãã©ã¡ã¼ã¿ããã®ãã¡ã¤ã«ã«ã»ãããã¾ãã
$API_UserName=""; $API_Password=" "; $API_Signature=" "; ... function hash_call($methodName,$nvpStr) { //setting the curl parameters. $ch = curl_init(); ... //NVPRequest for submitting to server $nvpreq="METHOD=" . urlencode($methodName) . "&VERSION=" . urlencode($version) . "&PWD=". urlencode($API_Password) . "&USER=" . urlencode($API_UserName) . "&SIGNATURE=" . urlencode($API_Signature) . $nvpStr . "&BUTTONSOURCE=" . urlencode($sBNCode); //setting the nvpreq as POST FIELD to curl curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq); //getting response from server $response = curl_exec($ch); ... }
hash_callé¢æ°ã¯ãå®è¡ããã¡ã½ããã¨ã¡ã½ããã®ãã©ã¡ã¼ã¿ãåãã¦ãå¿ é ãã©ã¡ã¼ã¿ã追å ãAPIã®ã¨ã³ããã¤ã³ãã«POSTãªã¯ã¨ã¹ããå®è¡ãã¦ãã¾ãã
以éããExpress Checkout Integration Guideãã®ã2. Getting Started With Express Checkoutãã®è§£èª¬ãåèã«ãä¸å³ã®å®è£
ããã¼ããã¼ã¹ã«è§£èª¬ãã¦ããã¾ãã
1. PayPalãã¿ã³ãé ç½®
ã¾ããã«ã¼ãã®æå¾ã®ãã¼ã¸index.phpã§ã¯ãSubmitã«PayPalãã¿ã³ã®ç»åãæå®ãã¦ãã¾ãã
<form action='expresscheckout.php' METHOD='POST'> ... <input type='image' name='submit' src='https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif' border='0' align='top' alt='Check out with PayPal'/> </form>
PayPalãã¿ã³ã®ä½ãæ¹ã¯ã付録1. PayPalボタンの作り方ããåç §ãã ããã
2. SetExpressCheckoutãå®è¡ãã¦PayPalç»é¢ã«ãªãã¤ã¬ã¯ã
PayPalãã¿ã³ãã¯ãªãã¯ãããã¨expresscheckout.phpãå®è¡ããããã®ä¸ã§PayPalãã©ã³ã¶ã¯ã·ã§ã³ãéå§ãã¾ãã
PayPalãã©ã³ã¶ã¯ã·ã§ã³ãéå§ããã«ã¯SetExpressCheckoutã¡ã½ãããå¼ã³åºãã¾ãã
expresscheckout.phpã§ã¯ãpaypalfunctions.phpãã¤ã³ã¯ã«ã¼ããã¦ãã¾ããããã®paypalfunctions.phpã«ã¯SetExpressCheckoutAPIãã©ããããCallShortcutExpressCheckouté¢æ°ãç¨æããã¦ãã¾ãã
expresscheckout.phpã§ã¯ããã®CallShortcutExpressCheckouté¢æ°ãå¼ã³åºãã¾ãã
require_once ("paypalfunctions.php"); $paymentAmount = $_POST["Payment_Amount"]; $currencyCodeType = "USD"; $paymentType = "Sale"; $returnURL = "http://localhost/testpaypal/review.php"; $cancelURL = "http://localhost/testpaypal/index.php"; $resArray = CallShortcutExpressCheckout ($paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL); ...
以ä¸ã®ã³ã¼ãã¯ãpaypalfunctions.phpã®CallShortcutExpressCheckouté¢æ°ã®ä¸é¨ã§ãã
function CallShortcutExpressCheckout( $paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL) { $nvpstr="&PAYMENTREQUEST_0_AMT=". $paymentAmount; $nvpstr = $nvpstr . "&PAYMENTREQUEST_0_PAYMENTACTION=" . $paymentType; $nvpstr = $nvpstr . "&RETURNURL=" . $returnURL; $nvpstr = $nvpstr . "&CANCELURL=" . $cancelURL; $nvpstr = $nvpstr . "&PAYMENTREQUEST_0_CURRENCYCODE=" . $currencyCodeType; ... $resArray=hash_call("SetExpressCheckout", $nvpstr); $ack = strtoupper($resArray["ACK"]); if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING") { $token = urldecode($resArray["TOKEN"]); $_SESSION['TOKEN']=$token; } return $resArray; }
CallShortcutExpressCheckouté¢æ°ã§ã¯ãSetExpressCheckoutã¡ã½ããã«å¿
è¦ãªãã©ã¡ã¼ã¿ãç¨æãhash_callé¢æ°ãå¼ã³åºãã¦ãã¾ãã
å®éã«éä¿¡ãããPOSTãã©ã¡ã¼ã¿ã¯ä»¥ä¸ã®ç¨ãªæååã«ãªãã¾ãã
METHOD=SetExpressCheckout&VERSION=64&PWD=xxxx&USER=shop6_1303088870_biz_api1.gmail.com&SIGNATURE=yyyyyyyy&PAYMENTREQUEST_0_AMT=18&PAYMENTREQUEST_0_PAYMENTACTION=Sale&RETURNURL=http://www.example.com/review.php&CANCELURL=http://www.example.com/index.php&PAYMENTREQUEST_0_CURRENCYCODE=USD&BUTTONSOURCE=PP-ECWizard
以ä¸ãSetExcpressCheckoutã¡ã½ããã®åãã©ã¡ã¼ã¿ã«ã¤ãã¦èª¬æãã¾ãã
- PAYMENTREQUEST_0_AMT
éé¡ãæå®ãã¾ãã
PAYMENTREQUEST_n_AMTã®nã¯æ¯æãã®çªå·ã§ã0ãã9ã¾ã§ä¸åº¦ã«æ大10ã¾ã§æ¯æããã¾ã¨ãã¦è¡ãã¾ãã
ãã«ç«ã¦ä»¥å¤ã®å ´åã¯PAYMENTREQUEST_n_CURRENCYCODEãæå®ããå¿
è¦ãããã¾ããåã®å ´åã¯ä»¥ä¸ã追å ãã¾ãã
PAYMENTREQUEST_0_CURRENCYCODE=JPY
- PAYMENTREQUEST_0_PAYMENTACTION
Payment Actionã¯ä»¥ä¸ã®ç©ãæå®ãã¾ãã
Sale: ããã©ã«ãã決æ¸å¦çãçµäºããæç¹ã§ãååºå´ã®PayPalå£åº§ã«ééãããã
Authorization: 決æ¸å¦ççµäºå¾ãååºãPayPalã«ãã°ã¤ã³ãã¦åå(Capture)å¦çãããã¾ã§ééãããªã(Pendingã«ãªã)ã
Order: Authorizationããããã«ã¾ã¨ãã¦å¦çã§ããï¼ãããªãã¨ãæ¸ãã¦ããã¾ãããPayPal sandboxã§åä½ã確èªã§ããªãã£ãã®ã§è©³ç´°ã¯ä¸æã§ãã
Authorizationã¨Orderã«ã¤ãã¦ã¯ãPayPalå©ç¨è¦ç´ãæ¯æãããªã·ã¼ãã®ãXII.ãã¼ãã£ã³ãã«ããå¦çé
延ã®å ´åã®æ¯æãæ¿èªãã«æ¸ãã¦ããå
容ã«è©²å½ããããã§ãã
https://cms.paypal.com/jp/cgi-bin/?cmd=_render-content&content_ID=ua/Payments_full&locale.x=ja_JP
ããã¥ã¡ã³ããããã¾ãã(2011å¹´7æ1æ¥è¿½è¨)
https://cms.paypal.com/jp/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_authcapture
ãã®ä»åèï¼
https://merchant.paypal.com/us/cgi-bin/?&cmd=_render-content&content_ID=developer/e_howto_api_ECSettlements
http://blog.ecommercesoftwaresolutionsonline.com/archives/366/paypal-online-payment-action-sale-authorization.html
- RETURNURL
è³¼å
¥è
ãPayPalã®ç»é¢ã§æ¯æããæ¿èªããå¾ã«æ»ã£ã¦ããURLãæå®ãã¾ãã
ãµã³ãã«ã§ã¯ãhttp://localhost/testpaypal/review.php"ããæå®ãã¦ãã¾ãã
- CANCELURL
è³¼å
¥è
ãPayPalã®ç»é¢ã§æ¯æããæ¿èªããªãã£ãå ´åã«æ»ã£ã¦ããURLãæå®ãã¾ãã
ãµã³ãã«ã§ã¯é©å½ã«ãhttp://localhost/testpaypal/index.php"ããæå®ãã¦ãã¾ãã
- APIå®è¡
hash_callã¯ä¸è¨ã«èª¬æããéããAPIãå©ç¨ããããã«å¿ è¦ãªãã©ã¡ã¼ã¿ãããã«è¿½å ãã¦POSTãã¾ãã
- PayPalã«ãªãã¤ã¬ã¯ã
ãªãã¤ã¬ã¯ãå ã¯ãAPIã¨ã³ããã¤ã³ãã¨åæ§ã«Sandboxã¨å®éã®ç°å¢ã«ãã£ã¦ç°ãªãã¾ãã
Sandbox: https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=
Live: https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=
ãã©ã¡ã¼ã¿ãtokenãã«ã¯ãSetExpressCheckoutã®ã¬ã¹ãã³ã¹ã«å«ã¾ããå¤ãæå®ãã¾ãã
CallShortcutExpressCheckouté¢æ°ã®æ»ãå¤$resArrayã®å¤ã¯ä»¥ä¸ã®æ§ã«ãªã£ã¦ãã¾ãã
array(6) { ["TOKEN"]=> string(20) "EC-6C584982VW639902L" ["TIMESTAMP"]=> string(20) "2011-06-11T03:45:32Z" ["CORRELATIONID"]=> string(13) "39f0cadbd3294" ["ACK"]=> string(7) "Success" ["VERSION"]=> string(2) "64" ["BUILD"]=> string(7) "1882144" }
expresscheckout.phpã§TOKENãpaypalfunctions.phpã®RedirectToPayPalã«æ¸¡ãã¨ãã®ä¸ã§ä¸è¨ã®URLã«TOKENã追å ãã¦ãªãã¤ã¬ã¯ããã¦ããã¾ãã
RedirectToPayPal ( $resArray["TOKEN"] );
3. æ¯æãæ¿èªå¾ãGetExpressCheckoutDetails
PayPalã®ç»é¢ã§æ¯æããæ¿èªãããããè³¼å ¥è ã®è©³ç´°æ å ±ãGetExpressCheckoutDetailsã¡ã½ããã§åå¾ãã¾ãã
PayPalç»é¢ã§æ¯æããæ¿èªãããã¨ãRETURNURLã«æå®ããreview.phpã«æ»ããã¾ãã
review.phpã§ã¯paypalfunctions.phpã®GetShippingDetailsé¢æ°ãå¼ã³åºãã¦ãã¾ããããã®ä¸ã§GetExpressCheckoutDetailsãå®è¡ããã¾ãã
function GetShippingDetails( $token ) { $nvpstr="&TOKEN=" . $token; $resArray=hash_call("GetExpressCheckoutDetails",$nvpstr); $ack = strtoupper($resArray["ACK"]); if($ack == "SUCCESS" || $ack=="SUCCESSWITHWARNING") { $_SESSION['payer_id'] = $resArray['PAYERID']; } return $resArray; }
GetExpressCheckoutDetailsã¡ã½ããã®ãã©ã¡ã¼ã¿ã¯TOKENã®ã¿ã§ãã
TOKENã®å¤ã¯PayPalãããªãã¤ã¬ã¯ããããURLã®ãã©ã¡ã¼ã¿ã§è¿ããã¾ãã
review.phpã§ã¯ãã¦ã¼ã¶ã®æ å ±ã¨ãåè¨éé¡ã表示ãã¦[Review]ãã¿ã³ãã¯ãªãã¯ããã¨order_confirm.phpãå¼ã°ã決æ¸ããã¾ãã
4. DoExpressCheckoutPayment
æ¯æãã確å®ãã¦ãã©ã³ã¶ã¯ã·ã§ã³ãçµäºããããã«ã¯ãDoExpressCheckoutPaymentã¡ã½ãããå¼ã³ã¾ãã
ãµã³ãã«ã§ã¯ãorder_confirm.phpããå¼ã³åºãããpaypalfunctions.phpã®ConfirmPaymenté¢æ°ã®ä¸ã§DoExpressCheckoutPaymentã®å¦çãè¨è¿°ãã¦ãã¾ãã
function ConfirmPayment( $FinalPaymentAmt ) { //Format the other parameters that were stored in the session from the previous calls $token = urlencode($_SESSION['TOKEN']); $paymentType = urlencode($_SESSION['PaymentType']); $currencyCodeType = urlencode($_SESSION['currencyCodeType']); $payerID = urlencode($_SESSION['payer_id']); $serverName = urlencode($_SERVER['SERVER_NAME']); $nvpstr = '&TOKEN=' . $token . '&PAYERID=' . $payerID ããããããã. '&PAYMENTREQUEST_0_PAYMENTACTION=' . $paymentType . '&PAYMENTREQUEST_0_AMT=' . $FinalPaymentAmt; $nvpstr .= '&PAYMENTREQUEST_0_CURRENCYCODE=' . $currencyCodeType . '&IPADDRESS=' . $serverName; $resArray=hash_call("DoExpressCheckoutPayment",$nvpstr); $ack = strtoupper($resArray["ACK"]); return $resArray; }
- TOKEN
PayPalãããªãã¤ã¬ã¯ããããURLã®ãã©ã¡ã¼ã¿ã«å«ã¾ãã¾ãã
review.phpã§åå¾ããå¤ãæå®ãã¾ãã
- PAYERID
è³¼å ¥è ã®IDã§ãããã®å¤ãreview.phpã«PayPalãããªãã¤ã¬ã¯ããããéã®URLã®ãã©ã¡ã¼ã¿ã«å«ã¾ãã¾ãã
- PAYMENTREQUEST_0_AMT
SetExpressCheckoutã®ãã©ã¡ã¼ã¿ã¨åæ§ã§ãã
確å®ããéé¡ããã¦ãã¾ãã
- PAYMENTREQUEST_0_CURRENCYCODE
SetExpressCheckoutã®ãã©ã¡ã¼ã¿ã¨åæ§ã§ãã
確å®ããéé¡ã®é貨ããã¦ããã¾ãã
- IPADDRESS
è³¼å ¥è ã®ãã©ã¦ã¶ã®IPã¢ãã¬ã¹ãæå®ãã¾ãã
ãµã³ãããã¯ã¹ã§ãã¹ãããå ´åã®å¦çããã¼
以ä¸ã§ãåºæ¬çãªExpress Checkoutãå®è£
ããååã®ããã°ã®ãµã³ãã«ã®è§£èª¬ã¯ä»¥ä¸ã«ãªãã¾ãã
Sandboxãå©ç¨ããå ´åã®å¦çããã¼ã¯ä»¥ä¸ã®æ§ã«ãªãã¾ãã
https://www.x.com/docs/DOC-1326
ä»é² PayPalãã¿ã³ã®ä½ãæ¹
PayPalãã¿ã³ã«ã¤ãã¦ã¯ã以ä¸ã«è§£èª¬ãããã¾ãã
https://www.paypal.com/jp/cgi-bin/webscr?cmd=xpt/Merchant/merchant/ExpressCheckoutButtonCode-outside
ãã¤ãã«ãã¿ã³ã®URLã¯ãhttps://www.paypal.com/ja_JP/i/btn/btn_xpressCheckout.gifãã§ãã
URLã®å½ã³ã¼ããja_JPãã®é¨åããen_USãã«æ¿ããã¨è±èªã®ãã¿ã³ã«ãªãã¾ãã
ã¾ãPayPalæ¯æãã¨ã¯ã¬ã¸ããã«ã¼ãæ¯æãã®ã©ã¡ãããé¸æã§ããç¨ã«ããå ´åã¯ãã¤ãã«ãã¼ã¯ã使ç¨ãã¾ãã
å®å
¨ã»ç°¡åã«ãæ¯æã