请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

4回答

提问者 慕粉15201527929 2020-07-15 15:03:55

还得自己起一个node服务吗

0 回复 有任何疑惑可以回复我~
  • 扬_灵 #1
    是的 本地启动一个node服务,在小程序中调用本地的接口,在本地的接口中获取小程序接口数据
    回复 有任何疑惑可以回复我~ 2020-07-15 16:57:09
扬_灵 2020-07-15 15:02:20

同学你好,我们在开发助手上申请了私钥和公钥每个人都是不同的,你在开发者平台中使用了你自己的公钥,但是在请求接口的时候是请求线上的接口地址,使用的私钥是老师的,所以接口会报验签错误,你可以参考老师提供的接口代码在本地启动一个后端项目获取小程序接口的信息, http://www.youbaobao.xyz/mpvue-docs/guide/dev/alipay.html#%E8%8E%B7%E5%8F%96openid 你可以参考一下下面的代码

// 本地启动的项目端口是5000 使用switchHosts设置域名访问
export function getAlipayOpenId(appId, code) {
return get(`http://liumeng.xin:5000/user/zhifubao`, { appId, code })
// return get(`${API_PREFIX}/openId/get/alipay`, { appId, code })
}
// 后端代码 在这里我只是打印了小程序接口返回的信息,你可以根据需求自己进行修改
const AlipaySdk = require('alipay-sdk').default
router.get('/zhifubao',function(req,res,next){
const appId = req.query.appId
const code = req.query.code
// filename:本地存放私钥的文件
const filename = path.join(__dirname,'./siyao.txt')
if (!appId || !code) {
new Result('获取openId失败')
} else {
const alipaySdk = new AlipaySdk({
appId,
privateKey: fs.readFileSync(filename, 'ascii')
})
alipaySdk.exec('alipay.system.oauth.token', {
grantType: 'authorization_code',
code,
refreshToken: 'token'
}).then(result => {
if (result) {
console.log('alipay', result)
} else {
new Result( '获取openId失败')
}
}).catch(err => {
new Result( '获取openId失败')
})
}
})

// 返回的信息

//img1.sycdn.imooc.com/szimg/5f0ea9fa093b3a8d10000290.jpg

,如果不能解决你的问题,可以继续追问。



0 回复 有任何疑惑可以回复我~
提问者 慕粉15201527929 2020-07-15 12:17:39

https://img1.sycdn.imooc.com/szimg/5f0e8329097aca6512100482.jpg

https://img1.sycdn.imooc.com//szimg/5f0e8329097c9e6f16980702.jpg      现在又这样


0 回复 有任何疑惑可以回复我~
扬_灵 2020-07-15 09:53:01

同学你好,这个报错是因为验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配。如果不能解决你的问题,可以继续追问。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉15201527929 #1
    你看一下,不能发图片,我只能在添加回答里面回复你了
    回复 有任何疑惑可以回复我~ 2020-07-15 12:16:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信