WEBAPP开发教程hbuilder webapp支付宝app支付
凌雪 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
看完这篇文章有何感觉?已经有3人表态,33%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved