$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/namePerson/last', 1, 1); $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://schema.openid.net/contact/fullname', 1, 1); $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/contact/email', 1, 1); $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/contact/phone/default', 1, 1); // default billing address $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://schema.openid.net/contact/street1', 1, 1); $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://schema.openid.net/contact/street2', 1, 1); $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/contact/city/home', 1, 1); $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/contact/state/home', 1, 1); $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/contact/postalCode/home', 1, 1); $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/contact/country/home', 1, 1); // e.g. en_GB $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/pref/language', 1, 1); // e.g. Europe/London $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/pref/timezone', 1, 1); // PayPal specific attributes $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('https://www.paypal.com/webapps/auth/schema/verifiedAccount', 1, 1); $attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('https://www.paypal.com/webapps/auth/schema/payerID', 1, 1); $ax = new Auth_OpenID_Extension_AX_FetchRequest(); foreach ($attribute as $attr) { $ax->add($attr); } $auth->addExtension($ax); $scriptPath = implode("/", explode('/', $_SERVER["REQUEST_URI"], -1)); if (isset($_GET['popup'])) { $returnScript = $scriptPath . '/verify.php?popup=true'; } else { $returnScript = $scriptPath . '/verify.php'; } $url = $auth->redirectURL('https://' . $_SERVER["SERVER_NAME"], 'https://' . $_SERVER["SERVER_NAME"] . $returnScript); header('Location: ' . $url);
/** * Given attribute exchange arguments, populate this FetchRequest. * * @return $result Auth_OpenID_Extension_AX_Error if the data to be parsed * does not follow the attribute exchange specification. At least * when 'if_available' or 'required' is not specified for a * particular attribute type. Returns true otherwise. */ function parseExtensionArgs($ax_args) { $result = $this->_checkMode($ax_args); if (Auth_OpenID_Extension_AX::isError($result)) { return $result; } $aliases = new Auth_OpenID_NamespaceMap(); foreach ($ax_args as $key => $value) { if (strpos($key, 'type.') === 0) { $alias = substr($key, 5); $type_uri = $value; $alias = $aliases->addAlias($type_uri, $alias); if ($alias === null) { return new Auth_OpenID_Extension_AX_Error(sprintf("Could not add alias %s for URI %s", $alias, $type_uri)); } $count_s = Auth_OpenID::arrayGet($ax_args, 'count.' . $alias); if ($count_s) { $count = Auth_OpenID::intval($count_s); if ($count === false && $count_s === Auth_OpenID_Extension_AX_UNLIMITED_VALUES) { $count = $count_s; } } else { $count = 1; } if ($count === false) { return new Auth_OpenID_Extension_AX_Error(sprintf("Integer value expected for %s, got %s", 'count.' . $alias, $count_s)); } $attrinfo = Auth_OpenID_Extension_AX_AttrInfo::make($type_uri, $count, false, $alias); if (Auth_OpenID_Extension_AX::isError($attrinfo)) { return $attrinfo; } $this->add($attrinfo); } } $required = Auth_OpenID_Extension_AX_toTypeURIs($aliases, Auth_OpenID::arrayGet($ax_args, 'required')); foreach ($required as $type_uri) { $attrib = $this->requested_attributes[$type_uri]; $attrib->required = true; } $if_available = Auth_OpenID_Extension_AX_toTypeURIs($aliases, Auth_OpenID::arrayGet($ax_args, 'if_available')); $all_type_uris = array_merge($required, $if_available); foreach ($aliases->iterNamespaceURIs() as $type_uri) { if (!in_array($type_uri, $all_type_uris)) { return new Auth_OpenID_Extension_AX_Error(sprintf('Type URI %s was in the request but not ' . 'present in "required" or "if_available"', $type_uri)); } } $this->update_url = Auth_OpenID::arrayGet($ax_args, 'update_url'); return true; }