天猫精灵对接3 (具体代码实现)

1.有什么协议问题,请先看对接文档

2.基础流程请看上一篇文章,已经讲得比较详细了。

3.代码写得渣,有什么可以优化的地方麻烦提一下,喷我也没啥用。

运行(调试)流程:

本机测试(内网模拟授权流程):

编译代码,检查配置文件,将 web.config (里面也有备注说明)中的 serverUrl 换成你的IP地址(内网测试),如我本地的的 http://192.168.1.96:8030/

<add key="serverUrl" value="http://192.168.1.96:8030/" /><!--你发布到IIS上的地址,域名-->

启动IIS,访问你的地址

模拟地址为:http://ip:port/Web/Home/IndexLogin?client_id=myTest&response_type=code&redirect_uri=http://www.baidu.com&state=0

我本机访问为:

http://192.168.1.96:8030/Web/Home/IndexLogin?client_id=myTest&response_type=code&redirect_uri=http://www.baidu.com&state=0

账号密码随便输(代码里默认为 true 不做校验,具体自行处理下)

如果配置没问题,将跳转到如下地址:

跳转地址:

https://www.baidu.com/?code=39a25d4c38dc4113b0f9fe1afb8049d96e02cd98cd25417385953ad402c6d5bd

把跳转得到的code 复制出来。

39a25d4c38dc4113b0f9fe1afb8049d96e02cd98cd25417385953ad402c6d5bd

打开 POSTMAN (如果没有,自己找一个其他的代替)。

选择 Post

url填写为:http://192.168.1.96:8030/Web/Home/TestToken

Body:选择form-data,

填入以下的 key 和 value

key value
grant_type authorization_code
client_id myTest
client_secret myTest
code 39a25d4c38dc4113b0f9fe1afb8049d96e02cd98cd25417385953ad402c6d5bd(也就是上面得到的code)
redirect_uri http://www.baidu.com
refresh_token  

如下图:

{
    "access_token": "zP8ct6ghd68Apt1X671PM3AHpB21pP223EcxsEbVZWIhq1t4IrLXblR2sNh_Zr3h2oiUKbb2sICVxXBrEtGdVjo2f2rvp-wO91mO69xCQu3jUGmbNYmdigHbv0ZUL9F2x9LZUOraOOWKitGGJcnCkFsVRcXe6Nq-dDq1FU-HHZOgwYA0Lo0WmqvkvkRbVdRbzSXymZ9myyThpDaAJnWGDPuzYcCbTDuoMCPYHnVrrpA",
    "refresh_token": "e9314adc61bf4db8b23e0e57bd739c9b3c8b4e79ec3a452ab075052a5cda40a6",
    "expires_in": 86900
}

正常响应如图中所示,这样,授权就完成了。

refreshToken 的模拟操作和上面的操作是类似的。

将上方得到的 refresh_token 复制出来

打一个新的 PostMan 窗口,输入如下参数:

key value
grant_type refresh_token
client_id myTest
client_secret myTest
code  
redirect_uri http://www.baidu.com
refresh_token e9314adc61bf4db8b23e0e57bd739c9b3c8b4e79ec3a452ab075052a5cda40a6(也就是上面得到的 refresh_token )

点击 Send,可看到结果:

天猫平台的设置可以参考如下图:

O了,授权流程完成,代码里也有天猫的入口之类的判断,估计你们也不会用到的,就直接不讲了。也有一小部分小度对接的代码,虽然也删得差不多了。

 最重要的:

源码地址:下载地址

原文地址:https://www.cnblogs.com/Frank-Jan/p/10756211.html