支付宝支付接口,subject有中文的时候应该怎么处理?

junguo_fan 2019-04-18 03:52:29
最近在接支付宝的支付接口,遇到一个问题:在设置业务参数的时候,subject如果有中文,支付页面跳转会失败; 官方文档中说需要urlencode. 转码之后能正常跳转到支付页面,但是商品名称却还是转码状态,不是中文.请问有没有大神遇到过这个问题,怎么解决的?


...全文
1128 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2019-04-19
  • 打赏
  • 举报
回复
你的bizContent是怎么转成json的?貌似转json的时候不能用中文,要用unicode码
junguo_fan 2019-04-18
  • 打赏
  • 举报
回复
引用 1 楼 qybao 的回复:
你用URLEncoder转码了,你不用URLDecoder解码吗? 不加encode会乱码吗?不知道你的系统是什么编码的 你可以试试 put("subject", new String("显示器".getBytes("UTF-8"), "GBK"))
我的编辑器编码是utf-8. 我用你的方法尝试了,不可以.subject中不能包含中文.
qybao 2019-04-18
  • 打赏
  • 举报
回复
你用URLEncoder转码了,你不用URLDecoder解码吗?
不加encode会乱码吗?不知道你的系统是什么编码的
你可以试试 put("subject", new String("显示器".getBytes("UTF-8"), "GBK"))
.支付宝接口中需要修改参数的文件有 alipay_config.asp 文件,index.asp;买家付款成功后反馈的页面时 return_url(页面跳转),notify_url(后台通知);alipayto 不用修改. alipay_config.asp 文件中 seller_email,key,partner 对应的分别是支付宝帐号,安全校验码和合作id ,怎么获取建 alipay_config.asp 注释说明. index.asp 页面,需要传递参数到这个页面,需要传递的参数是 subject(商品名称),body(商品说明),out_trade_no(外部商家订单号.为了方便测试,我在index.asp这个页面采用的是以日期的形式的数字字符串,这个订单号必须保证提交给支付宝的时候是唯一的,否则支付不了) 2. return_url 和 notify_url 的区别及其操作. 买家付款成功后,如果接口中指定有return_url ,买家付完款后会跳到 return_url所在的页面,这个页面可以展示给客户看,这个页面只有付款成功才会跳转. notify_url: 服务器后台通知,这个页面是程序后台运行的(买家和卖家都看不到),买家付完款后,支付宝会调用notify_url这个页面所在的页面并把相应的参数传递到这个页面,这个页面根据支付宝传递过来的参数修改网站订单的状态,更新完订单后需要在页面上打印出一个success 给支付宝,如果反馈给支付宝的不是success,支付宝会继续调用这个页面. 流程: 买家付完款(trade_status=WAIT_SELLER_SEND_GOODS)--->支付宝通知notify_url--->如果反馈给支付宝的是success(表示成功,这个状态下不再反馈,如果不是继续通知,一般第一次发送和第二次发送的时间间隔是3分钟) 剩下的过程,卖家发货,买家确认收货,交易成功都是这个流程
支付宝接口 asp.net c#支付宝接口详细代码   支付宝Payto接口的C#.net实现方法。支付宝现在这种支付方式比较多象网银在线等使用的方法都是url验证,就是通过url参数和一个这些url参数的md5编码来确认这个连接的正确性,支付宝在你购买成功后跳转自定义连接的时候会传2次过来,第一次是数据底层请求,第二次是web请求,而只有第一次有验证码,这个只能通过记录下来才看的到,因为两次请求间隔很小,如果光显示的话最后的结果是被第二次覆盖了的。所以在接收的时候就要设定接收条件,一种是没有notify_type参数的,一种是有的。   我们先来看一下创建一个连接地址 t1=ConfigurationSettings.AppSettings["interface"];//支付接口,就是给的一个连接地址   t2=ConfigurationSettings.AppSettings["account"];//支付宝帐户你的帐户   t3=ConfigurationSettings.AppSettings["password"];//安全校验码,设置的商家验证码   t4="images/logo_zfbsmall.gif";//按钮图片地址   t5="test";//悬停说明   cmd="0001";//默认   subject="item";//商品名称   body="decrip";//描述   order_no=;//定单号,用户自己生成,方便自己管理 prices=100;//价格0.01~50000.00   rurl="http://www.xxx.com/";//商品展示网址   types="1";//1:商品购买2:服务购买3:网络拍卖4:捐赠   number="1";//购买数量   transport="3";//1:平邮2:快递3:虚拟物品   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,这个是固定的   上面就是要提供得基本信息,然后就是生成支付宝得连接,也就是给支付宝提供一条带验证的购买信息。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧