Dazu bei PayPal anmelden und sich mit seinem Account legetimieren. Als Händler muss der Personalausweis und der Gewerbeschein nach PayPal gesendet werden um die Freischaltung zu bekommen. Bei Hilfe stehe ich gerne zur Verfügung, da ich engen Kontakt zu PayPal habe.
Habe das jetzt so weit gelöst. Aber: wenn ich den Express-Button klicke, wird eine englische PayPal-Login-Seite angezeigt. (Wie)Kann man erreichen, dass sich das nach der Shop-Sprache richtet, also z.B. eine deutsche Login-Seite erscheint.
PayPal Express und PayPal Richtlinien Die Shops werden nach Anmeldung von dem Banker eingestellt für PayPal. Auch wenn PayPal funktioniert ist eine Freischaltung für gewisse Richtlinien notwendig, die aber nur über PayPal selber geschaltet werden kann. Diesen Part hatte ich mit anderen Shops durchgeführt und jeden einzelnen Shop und Shopbetreiber nach Rücksprache mit denselbigen erledigt. Es ist damit nicht getan, einfach sich bei PayPal anzumelden und den API und Zugangskey in den eigenen Shop einzutragen, da man nicht ohne weiteres an die Händlerkonditionen kommt, die von dieser Institution angeboten wird. Um ein Händlerkonto zu bekommen, sind einige Dokumente einzureichen. Wer Kunde ist bei PayPal, sollte seinen Banker dort anrufen und den genauen Vorgang für seinen Shop erfragen. Da nicht alle Konditionen gleich sind für die Shops.
PHP: de,en-us;q=0.7,en;q=0.3 Im Antwort-Header steht u.a. dies: PHP: X-RecruitingIf you are reading this, maybe you should be working at PayPal instead! Check out http://ebaycareers.com/ Humor haben sie auch noch.... Beim normalen PayPal-Checkout wird die deutsche Seite aktiviert.... Das ist das PayPal-Log: PHP: 2015-03-02T08:43:19+01:00 | preparing express checkout2015-03-02T08:43:37+01:00 | setECReq:SetExpressCheckoutReq Object( [SetExpressCheckoutRequest] => SetExpressCheckoutRequestType Object ( [SetExpressCheckoutRequestDetails] => SetExpressCheckoutRequestDetailsType Object ( [OrderTotal] => [ReturnURL] => http://....../checkout_paypal_prepare.php?XTCsid=691sasm3gc1h65afb5pnbtggj0 [CancelURL] => http://....../shopping_cart.php?XTCsid=691sasm3gc1h65afb5pnbtggj0 [TrackingImageURL] => [giropaySuccessURL] => [giropayCancelURL] => [BanktxnPendingURL] => [Token] => [MaxAmount] => [OrderDescription] => [Custom] => [InvoiceID] => [ReqConfirmShipping] => 0 [ReqBillingAddress] => [BillingAddress] => [NoShipping] => 2 [AddressOverride] => 0 [LocaleCode] => [PageStyle] => [cppheaderimage] => [cppheaderbordercolor] => 000000 [cppheaderbackcolor] => ffffff [cpppayflowcolor] => FF0000 [cppcartbordercolor] => 000000 [cpplogoimage] => [Address] => [PaymentAction] => Sale [SolutionType] => [LandingPage] => [BuyerEmail] => [ChannelType] => [BillingAgreementDetails] => [PromoCodes] => [PayPalCheckOutBtnType] => [ProductCategory] => [ShippingMethod] => [ProfileAddressChangeDate] => [AllowNote] => 1 [FundingSourceDetails] => [BrandName] => BlauerTacho4u - Shop [CallbackURL] => [EnhancedCheckoutData] => [OtherPaymentMethods] => [BuyerDetails] => [PaymentDetails] => Array ( [0] => PaymentDetailsType Object ( [OrderTotal] => BasicAmountType Object ( [currencyID] => EUR [value] => 63.97 ) [ItemTotal] => BasicAmountType Object ( [currencyID] => EUR [value] => 63.97 ) [ShippingTotal] => BasicAmountType Object ( [currencyID] => EUR [value] => 0.00 ) [HandlingTotal] => [TaxTotal] => [OrderDescription] => [Custom] => [InvoiceID] => [ButtonSource] => [NotifyURL] => http://....../paypal_ipn.php [ShipToAddress] => AddressType Object ( [Name] => Rene Gruteser [Street1] => Eickener Straße 34 [Street2] => [CityName] => Mönchengladbach [StateOrProvince] => [Country] => DE [CountryName] => [Phone] => [PostalCode] => 41061 [AddressID] => [AddressOwner] => [ExternalAddressID] => [InternationalName] => [InternationalStateAndCity] => [InternationalStreet] => [AddressStatus] => [AddressNormalizationStatus] => ) [FulfillmentReferenceNumber] => [FulfillmentAddress] => [PaymentCategoryType] => [ShippingMethod] => [ProfileAddressChangeDate] => [PaymentDetailsItem] => Array ( [0] => PaymentDetailsItemType Object ( [Name] => 2x H1 MTEC Abblendlicht 55Watt mit 100Watt Optik [Number] => 1411010 [Quantity] => 2 [Tax] => [Amount] => BasicAmountType Object ( [currencyID] => EUR [value] => 29.99 ) [EbayItemPaymentDetailsItem] => [PromoCode] => [ProductCategory] => [Description] => [ItemWeight] => [ItemLength] => [ItemWidth] => [ItemHeight] => [ItemURL] => [EnhancedItemData] => [ItemCategory] => ) [1] => PaymentDetailsItemType Object ( [Name] => 37mm 2 SMD LED Soffitte Can-Bus CheckControl 3 Farben [Number] => 1110940 [Quantity] => 1 [Tax] => [Amount] => BasicAmountType Object ( [currencyID] => EUR [value] => 3.99 ) [EbayItemPaymentDetailsItem] => [PromoCode] => [ProductCategory] => [Description] => [ItemWeight] => [ItemLength] => [ItemWidth] => [ItemHeight] => [ItemURL] => [EnhancedItemData] => [ItemCategory] => ) ) [InsuranceTotal] => [ShippingDiscount] => [InsuranceOptionOffered] => [AllowedPaymentMethod] => [EnhancedPaymentData] => [SellerDetails] => [NoteText] => [TransactionId] => [PaymentAction] => Sale [PaymentRequestID] => [OrderURL] => [SoftDescriptor] => [BranchLevel] => [OfferDetails] => [Recurring] => [PaymentReason] => ) ) [FlatRateShippingOptions] => [CallbackTimeout] => [CallbackVersion] => [CustomerServiceNumber] => [GiftMessageEnable] => [GiftReceiptEnable] => [GiftWrapEnable] => [GiftWrapName] => [GiftWrapAmount] => [BuyerEmailOptInEnable] => [SurveyEnable] => [SurveyQuestion] => [SurveyChoice] => [TotalType] => [NoteToBuyer] => [Incentives] => [ReqInstrumentDetails] => [ExternalRememberMeOptInDetails] => [FlowControlDetails] => [DisplayControlDetails] => [ExternalPartnerTrackingDetails] => [CoupledBuckets] => ) [DetailLevel] => [ErrorLanguage] => [Version] => ))2015-03-02T08:52:48+01:00 | setECResponse:SetExpressCheckoutResponseType Object( [Token] => EC-5YK424998A722012F [Timestamp] => 2015-03-02T07:44:51Z [Ack] => Success [CorrelationID] => 349da61c5b3a7 [Errors] => [Version] => 98.0 [Build] => 15558997) Was mir daran auffällt, ist, dass "LocaleCode" und "ErrorLanguage" undefiniert sind.....
Ein Verbesserungsvorschlag: In "checkout_paypal_prepare.php" wird beim Fehlschlagen der PayPal-Verbindung immer auf die Startseite verlinkt... Man könnte auf den "$_SERVER['HTTP_REFERER'];" verlinken, so dass man wieder gleich im Warenkorb landet.... Etwa so: PHP: //Avengerif($token === false) { # die('paypal: error'); $_SESSION['ASYNC_MESSAGE'] = $paypal->get_text('paypal_temporarily_unavailable'); $redirect_url=$_SERVER['HTTP_REFERER']; if (!$redirect_url) { $redirect_url=GM_HTTP_SERVER.DIR_WS_CATALOG.FILENAME_DEFAULT.'?'.SID; }}else { $redirect_url = $paypal->getRedirectURL('_express-checkout', $token);}xtc_redirect($redirect_url);//Avenger
Im normalen PayPal-Checkout wird das explizit gesetzt: PHP: // BOF GM_MOD: $nvpstr = "&GIROPAYSUCCESSURL=" .$gm_success_url. "&GIROPAYCANCELURL=" .$cancelURL. "&BANKTXNPENDINGURL=" .$gm_success_url. "&RETURNURL=" .$returnURL. "&CANCELURL=" .$cancelURL. $address. "&LOCALECODE=" .$t_localcode. "&PAYMENTREQUEST_0_PAYMENTACTION=" .$paymentType. "&PAYMENTREQUEST_0_CURRENCYCODE=" .$currencyCodeType. "&PAYMENTREQUEST_0_AMT=" .round($paymentAmount, 2). "&PAYMENTREQUEST_0_DESC=" .$insert_id. $order_details; Hat denn sonst noch jemand das Problem beim Express-Checkout?
Ja, habe ich. Gerade frisch mit 2.1.15.2 installiert. PayPal landet immer auf der deutschen Seite, egal wie die Browsersprache des Kunden aussieht und der Kunde hat keine Möglichkeit die Sprache zu ändern. Das ist Mist. So verliert man Kunden. Gerade nochmal getestet. Wenn ich mit französischem Browser aus meiner französischen Seite auschecke, bekomme ich trotzdem die deutsche PayPal-Seite angezeigt. Egal ob normaler Checkout oder Express-Checkout,
Hallo, ihr könnt gerne ausprobieren, wie es mit explizit gesetztem LocaleCode aussieht. Einfach in gm/classes/GMPayPal.php jeweils nach PHP: $setECReqDetails->BrandName = $config['brandname']; einfügen: PHP: $setECReqDetails->LocaleCode = $_SESSION['language_code']; In meinen Tests bewirkte das gar nicht, auch nicht zusammen mit der Browser-Sprache. Aber ich habe auch gerade nur die Sandbox zur Verfügung, die sowieso eine andere Zahlungsseite zeigt als die Produktivumgebung. Die Dokumentation zu LocaleCode sagt übrigens: Das ist etwas schwammig und lässt mich vermuten, dass da mindestens auch noch eine GeoIP-Datenbank reinspielt. Das könnte man testen, wenn man einen VPN-Tunnel hätte, mit dem man mal mit einer ausländischen IP testen würde.
Ich hatte gerade noch kurz die Vermutung, dass das evtl. case-sensitive ist, aber auch ein strtoupper($_SESSION['language_code']) bewirkt keine erkennbare Änderung.