300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 开通支付宝小程序收款功能

开通支付宝小程序收款功能

时间:2019-04-03 19:19:03

相关推荐

开通支付宝小程序收款功能

支付宝小程序支付接口

相关文档

小程序支付开通官方文档

1.开通小程序收款权限

2.总体流程

问题:

1.在alipay.trade.create中需要传递给服务器用户的buyer_id即user_id

如何获取user_id:

1).在支付宝前段获得用户授权,得到authCode

2).调用支付宝接口传递授权码,得到用户其他信息(useridaccess_token)

获取用户信息官方接口

public String getUserId(String authcode) {AlipayClient alipayClient = new DefaultAlipayClient("/gateway.do", aliPayConfig.getAPP_ID(), aliPayConfig.getAPP_PRIVATE_KEY(), "json", "GBK", aliPayConfig.getALIPAY_PUBLIC_KEY(), "RSA2");AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();request.setGrantType("authorization_code");request.setCode(authcode);request.setRefreshToken("08134b203fe6c11548bcabd8da5bb087a83b");try {AlipaySystemOauthTokenResponse response = alipayClient.execute(request);if (response.isSuccess()) {return response.getUserId();} else {logger.info("获取用户id失败");}} catch (AlipayApiException e) {e.printStackTrace();}return null;}

2.在调用alipay.trade.create时,需要传递给服务器支付宝公匙小程序的私匙

需要在小程序界面设置

3.回调url需要我们在调用alipay.trade.create时传递给服务器

4.java后端使用alipay.trade.create官方示例时会出现参数无效错误,使用model方法传递参数

public String getTradeNO(String fee, String authcode,String phone) {AlipayClient alipayClient = new DefaultAlipayClient("/gateway.do", aliPayConfig.getAPP_ID(), aliPayConfig.getAPP_PRIVATE_KEY(), "json", "UTF-8", aliPayConfig.getALIPAY_PUBLIC_KEY(), "RSA2");//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.create.AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();//SDK已经封装掉了公共参数,这里只需要传入业务参数。AlipayTradeCreateModel model = new AlipayTradeCreateModel();model.setBuyerId(buyerId);//这里是刚刚获得的useridmodel.setOutTradeNo(out_trade_no);//这个是我们自己创建的订单号,便于处理后面的回调函数model.setSubject("geek small program recharge");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 {//使用的是executeAlipayTradeCreateResponse response = alipayClient.execute(request);String trade_no = response.getTradeNo();//获取返回的tradeNO。System.out.println(response.getBody());return trade_no;} catch (AlipayApiException e) {e.printStackTrace();System.out.println("获取订单号失败");return "获取订单号失败";}}

5.回调函数验签失败,当支付宝发送给我们消息时如果有中文,当我们使用错误的编码模式时会出现中文乱码导致验签失败

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。