多平台统一管理软件接口,如何实现多平台统一管理软件接口
251
2023-01-04
本文目录一览:
错误代码 HAS_NO_PRIVILEGE做支付宝接口测试的含义是没有权限访问该服务 。
出现上述错误代码做支付宝接口测试的原因有以下三种情况做支付宝接口测试:
1、没有签约这个接口的合同。
2、签约了相应的接口合同做支付宝接口测试,但没有生效。
3、签约了相应的接口合同,但由于违规违法等原因被审核部门强制关闭。
出现上述错误代码时,建议检查合同,确认合同是否签约,确认合同是否生效,确认所有操作符合法规。
扩展资料:
使用支付宝接口需要遵循以下规则:
1、合作申请前必须拥有经过实名认证的支付宝账户做支付宝接口测试;
2、遵守国家法律法规规定,经营内容合法合规;
3、遵循与支付宝相关协议(合同)约定;
4、遵循网络诚信交易原则,守法诚信经营。
支付宝开放平台服务商准入规则:
1、必须持有经过实名认证的支付宝账户;
2、具备收银系统技术开发能力、支付宝API调用能力、商户管理系统开发能力、商户拓展及运营等能力;
3、遵守国家法律法规规定,遵循与支付宝相关协议(合同)约定;
4、企业无工商异常信息、无失信记录、无法院未执行信息。
它现在这种支付方式比较多象网银在线等使用的方法都是url验证 就是通过url参数和一个这些url参数的md 编码来确认这个连接的正确性 支付宝在你购买成功后跳转自定义连接的时候会传 次过来 第一次是数据底层请求 第二次是web请求 而只有第一次有验证码 这个只能通过记录下来才看的到 因为两次请求间隔很小 如果光显示的话最后的结果是被第二次覆盖了的 所以在接收的时候就要设定接收条件 一种是没有notify_type参数的 一种是有的
我们先来看一下创建一个连接地址
t =ConfigurationSettings AppSettings[ interface ] //支付接口 就是给的一个连接地址
t =ConfigurationSettings AppSettings[ account ] //支付宝帐户你的帐户
t =ConfigurationSettings AppSettings[ password ] //安全校验码 设置的商家验证码
t = images/logo_zfb *** all gif //按钮图片地址
t = test //悬停说明
cmd= //默认
subject= item //商品名称
body= decrip //描述
order_no= //定单号 用户自己生成 方便自己管理 prices= //价格 ~
rurl= //商品展示网址
types= // 商品购买 服务购买 网络拍卖 捐赠
number= //购买数量
transport= // 平邮 快递 虚拟物品
ordinary_fee= //平邮运费
express_fee= //快递运费
readonlys= true //交易信息是否只读
buyer_msg= //买家给卖家的留言
buyer= //买家Email
buyer_name= //买家姓名
buyer_address= //买家地址
buyer_zipcode= //买家邮编
buyer_tel= //买家电话号码
buyer_mobile= //买家手机号码
partner=ConfigurationSettings AppSettings[ partenid ] //合作伙伴ID 这个是固定的
上面就是要提供得基本信息 然后就是生成支付宝得连接 也就是给支付宝提供一条带验证的购买信息
public string creatAlipayItemURL(string t string t string t string t string t string cmd string subject string body string order_no string prices string rurl string types string number string transport string ordinary_fee string express_fee string readonlys string buyer_msg string buyer string buyer_name string buyer_address string buyer_zipcode string buyer_tel string buyer_mobile string partner)
{
string itemURL str CreateAc acCode
string INTERFACE_URL sellerEmail keyCode imgsrc imgtitle AlipayItemURL
//初始化各必要变量
INTERFACE_URL=t +t //支付接口
sellerEmail=t //商户支付宝账户(改成你自己的)
keyCode=t //安全校验码(改成你自己的)
imgsrc=t //支付宝按钮图片
imgtitle=t //按钮悬停说明
str CreateAc= cmd + cmd + subject + subject
str CreateAc=str CreateAc + body + body
str CreateAc=str CreateAc + order_no + order_no
str CreateAc=str CreateAc + price + prices
//str CreateAc=str CreateAc + url + rurl
str CreateAc=str CreateAc + type + types
str CreateAc=str CreateAc + number + number
str CreateAc=str CreateAc + transport + transport
/*str CreateAc=str CreateAc + ordinary_fee + ordinary_fee
str CreateAc=str CreateAc + express_fee + express_fee
str CreateAc=str CreateAc + readonly + readonlys
str CreateAc=str CreateAc + buyer_msg + buyer_msg */
str CreateAc=str CreateAc + seller + sellerEmail
/*str CreateAc=str CreateAc + buyer + buyer
str CreateAc=str CreateAc + buyer_name + buyer_name
str CreateAc=str CreateAc + buyer_address + buyer_address
str CreateAc=str CreateAc + buyer_zipcode + buyer_zipcode
str CreateAc=str CreateAc + buyer_tel + buyer_tel
str CreateAc=str CreateAc + buyer_mobile + buyer_mobile */
str CreateAc=str CreateAc + partner + partner
str CreateAc=str CreateAc + keyCode
//acCode=FormsAuthentication HashPasswordForStoringInConfigFile(str CreateAc MD )
acCode=this GetMD (str CreateAc gb )
itemURL=INTERFACE_URL + ?cmd= + cmd
itemURL=itemURL + subject= + HttpUtility UrlEncode(subject)
itemURL=itemURL + body= + HttpUtility UrlEncode(body)
itemURL=itemURL + order_no= + order_no
itemURL=itemURL + price= + prices
//itemURL=itemURL + url= + rurl
itemURL=itemURL + type= + types
itemURL=itemURL + number= + number
itemURL=itemURL + transport= + transport
/*itemURL=itemURL + ordinary_fee= + ordinary_fee
itemURL=itemURL + express_fee= + express_fee
itemURL=itemURL + readonly= + readonlys
itemURL=itemURL + buyer_msg= + HttpUtility UrlEncode(buyer_msg)
itemURL=itemURL + buyer= + HttpUtility UrlEncode(buyer)
itemURL=itemURL + buyer_name= + HttpUtility UrlEncode(buyer_name)
itemURL=itemURL + buyer_address= + HttpUtility UrlEncode(buyer_address)
itemURL=itemURL + buyer_zipcode= + buyer_zipcode
itemURL=itemURL + buyer_tel= + buyer_tel
itemURL=itemURL + buyer_mobile= + buyer_mobile */
itemURL=itemURL + partner= + partner
itemURL=itemURL + ac= + acCode
AlipayItemURL=itemURL
return AlipayItemURL
}
这个函数就是返回生成的地址 里面注释掉的看你自己需要可以添加进去 然后就是md 码的问题 现在用默认的md 生成程序对中文的支持只限于GB 而支付宝使用的是GBK 虽然两个编码的内容GBK兼容GB 但是毕竟两个编码方式不同 所以会产生错误 如果用英文或者数字不会有问题 上面下载里面带的一个md asp的算法支持中文
现在已经可以跳转到支付宝的页面了 而我们这边就要自己记录用户的信息已经生成的定单编号 这样在支付宝返回信息的时候来查询 在设定了返回地址后 我们就要看接收页面了
string msg_id order_no gross buyer_email buyer_name buyer_address buyer_zipcode buyer_tel buyer_mobile action s_date ac notify_type
string returnTxt //返回给支付宝通知接口的结果
string alipayNotifyURL //支付宝查询接口URL
string myalipayEmail //商户的支付宝Email
string ResponseTxt=
returnTxt = N
alipayNotifyURL = ConfigurationSettings AppSettings[ interfaceback ] //支付宝查询接口地址
myalipayEmail = ConfigurationSettings AppSettings[ account ] //填写您的支付宝帐号
//检查支付宝通知接口传递过来的参数是否合法
msg_id = newop DelStr(Request[ msg_id ])
order_no = newop DelStr(Request[ order_no ])
gross = newop DelStr(Request[ gross ])
buyer_email = newop DelStr(Request[ buyer_email ])
buyer_name = newop DelStr(Request[ buyer_name ])
buyer_address = newop DelStr(Request[ buyer_address ])
buyer_zipcode = newop DelStr(Request[ buyer_zipcode ])
buyer_tel = newop DelStr(Request[ buyer_tel ])
buyer_mobile = newop DelStr(Request[ buyer_mobile ])
action = newop DelStr(Request[ action ])
s_date = newop DelStr(Request[ date ])
ac = newop DelStr(Request[ ac ])
notify_type = newop DelStr(Request[ notify_type ])
alipayNotifyURL = alipayNotifyURL + msg_id= + msg_id + email= + myalipayEmail + order_no= + order_no
System Net WebClient isClient= new System Net WebClient()
Stream isStream = isClient OpenRead(alipayNotifyURL)
StreamReader isReader = new StreamReader(isStream System Text Encoding GetEncoding( GB ))
ResponseTxt = isReader ReadToEnd()
if(action == test )//测试商户网站URL是否正确安装
{
returnTxt = Y
}
else if((action== sendOff )(msg_id!= ))//发货通知
{
returnTxt = N
if((ResponseTxt == true )||(ResponseTxt == false ))
{
//更新数据在商户系统里的订单数据 如果已经发货 则将returnTxt置为Y 否则为N
}
else
{
//非法数据 不做更新
returnTxt= Error
}
}
else if((action== sendOff )(notify_type== web ))
{
//检查是否已经付帐 并记录 }
else if((action== checkOut )(msg_id!= ))//交易结束通知
{
returnTxt = Y
if((ResponseTxt== true )||(ResponseTxt == false ))
{
//更新数据在商户系统里的订单数据 如果数据更新成功 则将returnTxt置为Y 否则为N
//更新数据
//你的代码 更新你这边数据
returnTxt= Y
}
else
{
//非法数据 不做更新
returnTxt = Error
}
}
else
{
returnTxt= Error
}
lishixinzhi/Article/program/net/201311/12472
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~