知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們在追求其視覺表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏壧峁┍憬莸闹С郑?
您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
支付寶小程序開發(fā)系列一: 獲取用戶手機(jī)號(.net)
發(fā)表時(shí)間:2020-9-21
發(fā)布人:葵宇科技
瀏覽次數(shù):118
第一步:開放平臺上添加 獲取會員手機(jī)號的功能包(需要主賬號簽約,子賬號不可見)
https://open.alipay.com/operation/mini/ops/mini-summary
第二步:添加主動觸發(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ī)號解密請求
phoneAuth(res.response);
},
fail: (res) => {
console.log(res);
}
});
function phoneAuth(e){
//后臺請求操作 主要是發(fā)送加密數(shù)據(jù)
}
第四步:后臺解析(低版本SDK:https://download.csdn.net/download/qq_36894527/12875709)
//應(yīng)用公鑰
public static string PublicKey = "";
//aes密鑰
public static string AESKey = "";
/// <summary>
/// 手機(jī)號解密
/// </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==\"}";
//小程序通過 my.getPhoneNumber 獲取到加密數(shù)據(jù),詳見獲取會員手機(jī)號接入文檔
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)用公鑰),在控制臺-小程序-開發(fā)設(shè)置-開發(fā)設(shè)置-接口加簽方式-設(shè)置/查看
string signVeriKey = publicKey;
//填小程序設(shè)置的AES密鑰。注意:若AES密鑰中存在反斜杠"\\"會導(dǎo)致解密報(bào)錯,需刪除反斜杠或更改沒有反斜杠的AES密鑰
string decryptKey = aesKey;
//如果是加密的報(bà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)簽不通過(異?;蛘邎?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
- 模版消息
- 小程序開發(fā)平臺前十名
- 網(wǎng)站建設(shè)報(bào)價(jià)
- 網(wǎng)絡(luò)公司聯(lián)系方式
- 云南網(wǎng)站建設(shè)列表網(wǎng)
- 開發(fā)制作小程序
- 軟件開發(fā)
- 保險(xiǎn)網(wǎng)站建設(shè)公司
- 云南網(wǎng)站建設(shè)選
- 云南網(wǎng)站建設(shè)一條龍
- 微信小程序
- 報(bào)廢車
- 做小程序被騙
- 排名
- 報(bào)廢車拆解回收管理系統(tǒng)
- 云南企業(yè)網(wǎng)站
- 正規(guī)網(wǎng)站建設(shè)公司
- 云南網(wǎng)站建設(shè) 網(wǎng)絡(luò)服務(wù)
- 百度人工排名
- 云南小程序開發(fā)哪家好
- 手機(jī)網(wǎng)站建設(shè)
- 云南花農(nóng)小程序
- 商標(biāo)
- 英文網(wǎng)站建設(shè)公司
- 云南網(wǎng)站建設(shè)哪家好
- 昆明做網(wǎng)站
- 開通微信小程序被騙