Я разрабатываю офисные приложения с использованием NodeJS. В рамках этого я должен реализовать проверку лицензии, которая будет проверять токен, отправленный вместе с URL-адресом приложения из офисного магазина.
Я сослался на ссылку http://msdn.microsoft.com/en-us/library/office/jj163908(v=office.15).aspx#bk_implement
Вот мой код:
var licence_code = req.param('et'); // this is equivalent to decodeURIComponent('token present in the url');
// Applies base64 decoding of the token to get a decoded token
var decode_base64 = new Buffer(license_code,'base64');
var code = decode_base64.toString();
// Using nodejs request module to make rest call to office verification service
request(
{ method: 'GET'
, uri:'https://verificationservice.officeapps.live.com/ova/verificationagent.svc/rest/verify?token=' + code
}
, function (error, response, body) {
console.log(body);
}
);
Я всегда получаю один и тот же неверный ответ от службы проверки Office, как показано ниже:
<VerifyEntitlementTokenResponse xmlns="http://schemas.datacontract.org/2004/07/Microsoft.OfficeMarketplace.ServicePlatform.VerificationAgent.Service.Contract" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<AssetId i:nil="true"/>
<DeploymentId i:nil="true"/>
<EntitlementAcquisitionDate>0001-01-01T00:00:00</EntitlementAcquisitionDate>
<EntitlementExpiryDate i:nil="true"/>
<EntitlementType i:nil="true"/>
<IsEntitlementExpired>false</IsEntitlementExpired>
<IsExpired>false</IsExpired>
<IsSiteLicense>false</IsSiteLicense>
<IsTest>false</IsTest>
<IsValid>false</IsValid>
<ProductId i:nil="true"/>
<Seats>0</Seats>
<SignInDate>0001-01-01T00:00:00</SignInDate>
<SubscriptionState i:nil="true"/>
<TokenExpiryDate>0001-01-01T00:00:00</TokenExpiryDate>
<UserId i:nil="true"/>
</VerifyEntitlementTokenResponse>
Пожалуйста, проверьте, правильно ли я использую декодирование токена, или проблема в этом. Помогите мне решить эту проблему.
Спасибо Рам
et
будет как в кодировке URL, так и в кодировке Base64. Похоже, ваш код декодирует только на Base64. Посмотрите, поможет ли добавлениеcode = unescape(code);
для обработки результата Base64. - person barry-johnson   schedule 06.04.2014