Metro 앱에서 인앱 구매를 사용하려고하는데 전혀 작동하지 않는 것 같습니다. 오류가 없으며 반환 값은 빈 문자열입니다. 내 코드는 다음과 같습니다.메트로 인앱 구매를 작동시키는 방법은 무엇입니까?
await CurrentAppSimulator.RequestProductPurchaseAsync("bonus", false);
if (!licenseInformation.ProductLicenses["bonus"].IsActive) {
error="purchase didn't work?";
}
그리고 오류가 발생합니다. WindowsStoreProxy.xml 파일을 만들었습니다. 이런 식으로 보입니다.
<Product ProductId="bonus" LicenseDuration="10">
<MarketData xml:lang="en-us">
<Name>Bonus pretend feature</Name>
<Price>1.00</Price>
<CurrencySymbol>$</CurrencySymbol>
<CurrencyCode>USD</CurrencyCode>
</MarketData>
</Product>
...
<LicenseInformation>
<App>
<IsActive>true</IsActive>
<IsTrial>true</IsTrial>
</App>
<Product ProductId="bonus">
<IsActive>false</IsActive>
</Product>
</LicenseInformation>
"true"를 입력하면이 특정 제품을 구입 한 것으로 간주하므로이 파일을 읽은 것 같습니다. 나는 documentation을 확인하고 나는 거기에 모든 것을하고있는 것처럼 보입니다.
코드가 RequestProductPurchaseAsync를 호출하면 반환 값을 선택하라는 대화 상자가 표시됩니다. S_OK를 선택한 다음 Continue를 클릭하십시오. 나는 반환 값으로 빈 문자열을 얻는다. 문제는 첫 번째 인수로 입력 한 문자열에 관계없이 동일한 결과를 얻고 있다는 것입니다.
나는 뭔가를 놓쳤을 것입니다. 내가 도대체 뭘 잘못하고있는 겁니까? 이걸 어떻게 진단 할 수 있습니까?
편집 : 분명히이 작업을 수행하는 트릭은 앱이 평가판 모드가 아닌지 확인하는 것입니다. 이것이 기본값입니다.
하지만 어떻게 진단 할 수 있습니까? 문제가 발생하면 오류 메시지를 어떻게받을 수 있습니까? 예를 들어 앱이 평가판 모드이기 때문에 구매에 실패한 것과 같은 유용한 오류를 알려주는 API를 얻으려면 어떻게해야합니까?
+1 도움이됩니다. 따라서 올바르게 이해한다면, 일단 앱을 배포하면 의미있는 오류 메시지가 나타납니다. 그러나 잘못된 제품 이름을 넣거나 시험 버전을 사용하면 침묵의 오류가 발생합니다. – redtuna
앱을 업로드하고 앱의 제품 이름을 잘못 입력하면 제품을 찾을 수 없다는 오류가 발생합니다. 앱을 업로드 할 지 잘 모르겠 으면 atrial release를 만들고 in app이 작동하는지 여부를 확인하십시오. 그런 다음 필요에 따라 정식 버전을 출시하십시오. – Anobik
다른 버전의 평가판 앱의 개발자 버전은 돈과 유통면에서 잠재적 인 위험이되므로 구입하지 마십시오. currentapp.purchase ...로 변경하면 오류 메시지를 볼 수 있습니다. – Anobik