首先,我要在微信里,实现下单购物的功能:
那么,自然会用到收货地址的功能。
使用的场景是这样的。
1.用户选择产品规格
2.用户点击“立即订购”
3.这里出现“提交订单”页。
然后,最顶部就是一个“收货地址”
如果用户之前有输入或从微信获取过,那么就会从数据库中调取出来。
但一开始肯定是没有的。
于是,会出现“新建收货地址“
就是我们现在说的功能。
我一开始实现的代码是:
1)点击”新建收货地址“
—出现新建收货地址页面,同时下方有个”从微信中获取收货地址“
这时,我通过一个Ajax去生成签名,然后通过微信提供的代码,实现拉起收货地址,代码大概如下:
$.ajax({
type: “POST”,
url: “…/Ajax/AddressForWx.ashx”,
contentType: “application/json; charset=utf-8”,
data: JSON.stringify({“surl”:"<%=HttpContext.Current.Request.Url.AbsoluteUri %>"}),
dataType: “json”,
beforeSend: function () {
btn.text(“调用中…”);
},
success: function (data) {//运行中,这里没有执行
if (data === null || data === undefined) {
alert(“错误”, “错误!”, “error”);
return;
}
//如果调用成功,则返回微信收货地址JSON对象。
//1.处理返回的配置JSON对象
//2.把JSON对象数据,通过ajax再入库
//3.把JSON对象数据,显示在订单提交页上面
//public string appId { get; set; }
//public string nonceStr { get; set; }
//public string timestamp { get; set; }
//public string signature { get; set; }
//public bool Issuccess { get; set; }
if (data.Issuccess)
{
//$("#resJson").val(JSON.stringify(res));
//下一步ajax
//2.把JSON对象数据,通过ajax再入库,注意Openid也要入库。
//1)创建一个JSON对象WxJson,包括:
//openid,微信地址信息
//2)格式化JSON对象,用于:
//a.入库使用,b.显示在订单提交页
//var varjson={"nationalCode":"440307","telNumber":"18138854673","userName":"陈先生","errMsg":"openAddress:ok","postalCode":"518116","provinceName":"广东省","cityName":"深圳市","countryName":"龙岗区","detailInfo":"雅宝路1 星河WORLD TOWER A"};
//添加修改属性