知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >
支付寶小程序開(kāi)發(fā)系列一: 獲取用戶(hù)手機(jī)號(hào)(.net)
發(fā)表時(shí)間:2020-9-21
發(fā)布人:葵宇科技
瀏覽次數(shù):118
第一步:開(kāi)放平臺(tái)上添加 獲取會(huì)員手機(jī)號(hào)的功能包(需要主賬號(hào)簽約,子賬號(hào)不可見(jiàn))
https://open.alipay.com/operation/mini/ops/mini-summary
第二步:添加主動(dòng)觸發(fā)按鈕
getPhoneNumber:授權(quán)成功后的回調(diào)
onAuthError:拒絕授權(quán)后的回調(diào)
<button open-type="getAuthorize"> my.getPhoneNumber({
success: (res) => {
let encryptedData = JSON.parse(res.response).response;
//userObject.phoneInfo = res.response;
console.log(res.response);
//手機(jī)號(hào)解密請(qǐng)求
phoneAuth(res.response);
},
fail: (res) => {
console.log(res);
}
});
function phoneAuth(e){
//后臺(tái)請(qǐng)求操作 主要是發(fā)送加密數(shù)據(jù)
}
第四步:后臺(tái)解析(低版本SDK:https://download.csdn.net/download/qq_36894527/12875709)
//應(yīng)用公鑰
public static string PublicKey = "";
//aes密鑰
public static string AESKey = "";
/// <summary>
/// 手機(jī)號(hào)解密
/// </summary>
/// <param name="openapiResult"></param>
/// <returns></returns>
public static string Decypt(string openapiResult, string publicKey, string aesKey)
{
//openapiResult= "{\"response\":\"9+asiPElYO6D9jVY21115q6WIe7Lobo0vIbP5D9l0hwmHERiIhu/jsMKoWX4PdJd05BUOLL0xSFazUut+4JH2udCwOaZVJcbT9/sJgMhAavSYGUDyKB3bffXRgDLRKBL+PGcnPD6JjQUgGOM9JPFxOBwmD0U0Ylo1GDagR9pjZjtAyFzAcJYDkGrOKTpsO9nTn2MFHfkUNikX/q1gPOehUiUnvb3ZqcPVs4rEb7M5xpgoBcc/eht+zpMBLFShaBpY3BtQluHxaTeEtT3a66G/SmcoJ0yBCt1z78ZQVy9pmStMgDnmVINArQz/O2XrPUakN3TszH9U1qnoJ5C8LSu/CsS0E8XApSu1iERQjKfJlg=\",\"sign\":\"KyQCYndlwsunFXOivUJGHdg88M4HyxtucizmGarsmvc+uUVOSuQlHhnYa3iKWkVxTv76Y75JJuiZP5wSqnfU0jjln27Xi0BSh2JPTF/4oIBJlrqQxsw9bVkzaGu5bkB+Tw4sZQwO8vgg8Z7f8bu6go/BWAEd5m4ds5haTQ9enH5ZDjb7S08EJbYLe9Nnz/BJbv0M1lbW60nGr5QyDFvmnE91g2U1NhAKaZewjIm/7xsFYlQ7xh68A+fEkr4TIzA7scILGncnmQ+mU3B98I5njiTzhxig+pByCGkY2vT3U6z+4VUFUuB0+bwOBNqYp++bXQs/cAhcv+7FV/yW4Qm+9w==\"}";
//小程序通過(guò) my.getPhoneNumber 獲取到加密數(shù)據(jù),詳見(jiàn)獲取會(huì)員手機(jī)號(hào)接入文檔
string res = "";
JObject jObj = null;
//1. 獲取驗(yàn)簽和解密所需要的參數(shù)
try
{
jObj = (JObject)JsonConvert.DeserializeObject(openapiResult);
}
catch (Exception ex)
{
throw new Exception("獲取驗(yàn)簽和解密所需要的參數(shù)失敗", ex);
}
string signType;
if (openapiResult.Contains("sign_type"))
{
signType = jObj["sign_type"].ToString();
}
else
{
signType = "RSA2";
}
string charset;
if (openapiResult.Contains("charset"))
{
charset = jObj["charset"].ToString();
}
else
{
charset = "UTF-8";
}
string encryptType;
if (openapiResult.Contains("encrypt_type"))
{
encryptType = jObj["encrypt_type"].ToString();
}
else
{
encryptType = "AES";
}
string sign = jObj["sign"].ToString();
string content = jObj["response"].ToString();
//如果密文的
bool isDataEncrypted = !content.StartsWith("{", StringComparison.Ordinal);
bool signCheckPass = false;
//2. 驗(yàn)簽
string signContent = content;
//RSA2支付寶公鑰(不是應(yīng)用公鑰),在控制臺(tái)-小程序-開(kāi)發(fā)設(shè)置-開(kāi)發(fā)設(shè)置-接口加簽方式-設(shè)置/查看
string signVeriKey = publicKey;
//填小程序設(shè)置的AES密鑰。注意:若AES密鑰中存在反斜杠"\\"會(huì)導(dǎo)致解密報(bào)錯(cuò),需刪除反斜杠或更改沒(méi)有反斜杠的AES密鑰
string decryptKey = aesKey;
//如果是加密的報(bào)文則需要在密文的前后添加雙引號(hào)
if (isDataEncrypted)
{
signContent = "\"" + signContent + "\"";
}
try
{
signCheckPass = AlipaySignature.RSACheckContent(signContent, sign, signVeriKey, charset, signType, false);
Console.WriteLine("RSA2驗(yàn)簽結(jié)果:" + signCheckPass);
}
catch (Exception ex)
{
//驗(yàn)簽異常, 日志
throw new Exception("驗(yàn)簽失敗", ex);
}
if (!signCheckPass)
{
//驗(yàn)簽不通過(guò)(異?;蛘邎?bào)文被篡改),終止流程(不需要做解密)
throw new Exception("驗(yàn)簽失敗");
}
//3. 解密
string plainData = null;
if (isDataEncrypted)
{
try
{
plainData = AlipayEncrypt.AesDencrypt(decryptKey, content, charset);
Console.WriteLine("AES解密結(jié)果:" + plainData);
}
catch (Exception ex)
{
//解密異常, 記錄日志
throw new Exception("解密異常", ex);
}
}
else
{
plainData = content;
}
return plainData;
}
相關(guān)案例查看更多
相關(guān)閱讀
- 云南網(wǎng)站建設(shè)方案 doc
- flex
- 小程序制作
- 云南網(wǎng)站建設(shè)公司哪家好
- 云南小程序開(kāi)發(fā)費(fèi)用
- 網(wǎng)站建設(shè)費(fèi)用
- 云南網(wǎng)站建設(shè)首選
- 網(wǎng)站建設(shè)
- 楚雄小程序開(kāi)發(fā)
- 報(bào)廢車(chē)拆解軟件
- 重慶網(wǎng)站建設(shè)公司
- painter
- 微信分銷(xiāo)系統(tǒng)
- 云南網(wǎng)站建設(shè)招商
- 網(wǎng)絡(luò)公司排名
- 百度排名
- 云南網(wǎng)站制作
- 小程序密鑰
- 網(wǎng)站建設(shè)開(kāi)發(fā)
- 怎么做網(wǎng)站
- 網(wǎng)站建設(shè)服務(wù)公司
- 微信分銷(xiāo)
- 企業(yè)網(wǎng)站
- 公眾號(hào)模板消息
- 網(wǎng)站建設(shè)服務(wù)
- 網(wǎng)站建設(shè)公司地址
- web開(kāi)發(fā)技術(shù)
- 網(wǎng)絡(luò)公司哪家好
- 微信小程序開(kāi)發(fā)入門(mén)課程
- 云南手機(jī)網(wǎng)站建設(shè)