如何解决C# 为 Apple 促销优惠生成签名
我尝试使用以下代码生成签名,以便在 Apple Store 移动端使用,但生成的签名无效。
我的代码:
string appBundleID = ConfigurationManager.AppSettings["Apple:AppBundleId"];
string keyIdentifier = ConfigurationManager.AppSettings["Apple:KeyId"];
string privateKey = ConfigurationManager.AppSettings["Apple:PrivateKey"];
var nonce = Guid.NewGuid().ToString().ToLower();
var unixTimestamp = (long)DateTime.UtcNow.Subtract(new DateTime(1970,1,1)).TotalMilliseconds;
string unsignedString = appBundleID + '\u2063' + keyIdentifier + '\u2063' + productIdentifier + '\u2063' + offerIdentifier + '\u2063' + applicationUsername + '\u2063' + nonce + '\u2063' + unixTimestamp;
CngKey key = CngKey.Import(Convert.FromBase64String(privateKey),CngKeyBlobFormat.Pkcs8PrivateBlob);
using (ECDsaCng dsa = new ECDsaCng(key))
{
dsa.HashAlgorithm = CngAlgorithm.Sha256;
var unsignedData = Encoding.UTF8.GetBytes(unsignedString);
var signature = dsa.SignData(unsignedData);
if (dsa.VerifyData(unsignedData,signature))
{
var signatureString = Convert.ToBase64String(signature);
return new IAPSignatureViewModel()
{
KeyIdentifier = keyIdentifier,Nonce = nonce,Signature = signatureString,TimeStamp = unixTimestamp
};
}
Apple Store 生成的无效签名示例:“EbnuPbJn0ht/xtRBN6jDZAIg1LfxPo+YMYg/PbNQEoASSbI/m1+SeOF/uD+HXm6Jv+Xbh/jbsyvxY3cfrSQNAQ==”
感谢您的帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。