凌雪
2018-10-11
来源 :网络
阅读 3326
评论 0
摘要:本文将带你了解WEBAPP开发教程hbuilder webapp支付宝app支付,希望本文对大家学WEBAPP有所帮助。
本文将带你了解WEBAPP开发教程hbuilder webapp支付宝app支付,希望本文对大家学WEBAPP有所帮助。
前言: 支付类的东西都是按照官方写的文档一步一步来就可以搞定,关键就是第一次弄,一脸懵,不成功就很烦躁,这次项目用的是hbuilder打包的app方式,框架用的是mui,其实app支付的重点就是在签名这块,官方有工具可以验签,一般签名不错的话就差不多成功了,下面干活。 后台主要代码: public String alipayMobile(OrderDetail orderdetail) throws AlipayApiException { Map<String,String> map = new TreeMap<String, String>(); //bizcontent(业务字段) Map<String,String> bizMap = new HashMap<String,String>(); bizMap.put("subject", orderdetail.getRoomName());//我这里用的是房间名字,根据业务写 bizMap.put("out_trade_no", orderdetail.getOrderCode());//订单号 bizMap.put("total_amount", orderdetail.getTradeAmt()+"");//金额 bizMap.put("product_code", "QUICK_MSECURITY_PAY");//固定的 String bizStr = JSON.toJSONString(bizMap); map.put("app_id", app_id);//自己的appid(申请的时候有的) map.put("method", "alipay.trade.app.pay");(就写这个) map.put("charset", "utf-8"); map.put("sign_type", "RSA2"); map.put("timestamp", DateTimeUtil.getDateString19());//时间格式参照官方给的中间有空格 map.put("version", "1.0"); map.put("notify_url", notify_url);//你的回调地址(异步通知用) map.put("biz_content", bizStr);//业务字段 //拼接好的含有&的字符串 String jsonStr2 = AlipaySignature.getSignContent(map); //获取签名(支付宝官方api) String sign = AlipaySignature.rsaSign(jsonStr2,merchant_private_key,"utf-8","RSA2"); map.put("sign", sign); //对value值进行url编码 for(Map.Entry<String, String> map2:map.entrySet()){ String key = map2.getKey(); String value = map2.getValue(); value = URLEncoder.encode(value); map.put(key, value); } //获取最终的json串(支付宝官方api) String realStr = AlipaySignature.getSignContent(map); return realStr; } 以上就可以获取返回前台的字符串啦。。。 再看看hbuilder里写的代码(前台) manifest.json中 前台js里 var aliChannel = null; // 支付宝支付 var channel = null; // 获取支付通道 plus.payment.getChannels(function(channels){ aliChannel=channels[0]; },function(e){ alert("获取支付通道失败:"+e.message); }); plus.nativeUI.showWaiting(); mui.post(访问后台的url, function(data) { plus.nativeUI.closeWaiting(); channel = aliChannel; console.log(data); if (data) { plus.payment.request(channel, data, function(result) { console.log(JSON.stringify(result)); mui.alert("付费成功"); }, function(e) { console.log(JSON.stringify(e)); alert(JSON.stringify(e)); mui.alert("付费失败"); }); } else { plus.nativeUI.alert("支付失败"); } }); 晚上以上代码就ok了,不成功的多注意一下签名是否正确,我自己测试的时候不用打包成app也可以成功的。。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之WebApp频道!
喜欢 | 1
不喜欢 | 2
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号