支付宝小程序支付接口1.
相关文档2.
小程序支付开通官方文档3.
1.开通小程序收款权限4.
2.总体流程问题:5.
1.在alipay.trade.create中需要传递给服务器用户的buyer_id即user_id6.
如何获取user_id:7.
1).在支付宝前段获得用户授权,得到authCode8.
2).调用支付宝接口传递授权码,得到用户其他信息(useridaccess_token)9.
获取用户信息官方接口publicStringgetUserId(Stringauthcode){AlipayClientalipayClientnewDefaultAlipayClient("/gateway.do",aliPayConfig.getAPP_ID(),aliPayConfig.getAPP_PRIVATE_KEY(),"json","GBK",aliPayConfig.getALIPAY_PUBLIC_KEY(),"RSA2");AlipaySystemOauthTokenRequestrequestnewAlipaySystemOauthTokenRequest();request.setGrantType("authorization_code");request.setCode(authcode);request.setRefreshToken("08134b203fe6c11548bcabd8da5bb087a83b");try{AlipaySystemOauthTokenResponseresponsealipayClient.execute(request);if(response.isSuccess()){returnresponse.getUserId();}else{logger.info("获取用户id失败");}}catch(AlipayApiExceptione){e.printStackTrace();}returnnull;}10.
2.在调用alipay.trade.create时,需要传递给服务器支付宝公匙和小程序的私匙11.
需要在小程序界面设置12.
3.回调url需要我们在调用alipay.trade.create时传递给服务器13.
4.java后端使用alipay.trade.create官方示例时会出现参数无效错误,使用model方法传递参数publicStringgetTradeNO(Stringfee,Stringauthcode,Stringphone){AlipayClientalipayClientnewDefaultAlipayClient("/gateway.do",aliPayConfig.getAPP_ID(),aliPayConfig.getAPP_PRIVATE_KEY(),"json","UTF-8",aliPayConfig.getALIPAY_PUBLIC_KEY(),"RSA2");//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.create.AlipayTradeCreateRequestrequestnewAlipayTradeCreateRequest();//SDK已经封装掉了公共参数,这里只需要传入业务参数。AlipayTradeCreateModelmodelnewAlipayTradeCreateModel();model.setBuyerId(buyerId);//这里是刚刚获得的useridmodel.setOutTradeNo(out_trade_no);//这个是我们自己创建的订单号,便于处理后面的回调函数model.setSubject("geeksmallprogramrecharge");model.setTotalAmount(fee);//支付宝后端单位为元request.setNotifyUrl(aliPayConfig.getNotifyUrl());//用户支付成功后,支付宝会给notifyurl发送请求request.setBizModel(model);//request.setBizContent("{"+//""out_trade_no":"+out_trade_no+','+//""total_amount":"+fee+','+//""subject":"极市,小程序充值","+//""buyer_id":"+buyerId+','+//"}");不能使用这种方式支付,不然会出现参数无效错误try{//使用的是executeAlipayTradeCreateResponseresponsealipayClient.execute(request);Stringtrade_noresponse.getTradeNo();//获取返回的tradeNO。System.out.println(response.getBody());returntrade_no;}catch(AlipayApiExceptione){e.printStackTrace();System.out.println("获取订单号失败");return"获取订单号失败";}}14.
5.回调函数验签失败,当支付宝发送给我们消息时如果有中文,当我们使用错误的编码模式时会出现中文乱码导致验签失败
支付宝小程序需要服务器吗 开通支付宝小程序收款功能-小程序商城收款后钱在哪-微信小程序需要备案吗...