美文网首页
支付宝卡券开发遇到的坑

支付宝卡券开发遇到的坑

作者: 風崋 | 来源:发表于2020-08-17 10:12 被阅读0次

1. 用户静默授权获取user_id

        1). 看支付宝的文档,有接口:alipay.user.info.auth, 然后根据文档进行对接,对接方式未服务端对接口进行访问,然鹅,一直给我返回302的错误,思考了下,发现用户授权不管怎么说都不应该在服务端进行操作,而是跳转页面。换种思维,把这个接口的参数转换成链接返回,然后通过GET方式做跳转,发现还是不行,脑壳疼。再思考下,这接口的链接域名都是为服务端API服务的,我拿来在浏览器里面访问,能成功就见鬼了...

        2). 上面的方案不行,就去找支付宝的网页端授权,找到了这种格式:https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=APPID&scope=SCOPE&redirect_uri=ENCODED_URL,文档里面说redirect_uri需要与应用后台配置一样,实际上不需要的,写啥都行。scope=auth_base为静默授权,auth_user为用户确认。在redirect_uri里面,拿到参数里面的token信息,再通过获取用户信息的接口(alipay.system.oauth.token),获取user_id.

2. 创建卡包模板和发放卡券接口

    1).**文档里面的的参数,看起来是json格式,但是如果用PHP的话,默认的json_encode,会对数据进行urlencode处理,所以中文会进行unicode编码,但是,支付宝在进行数据处理时,实际是不能进行unicode操作的,签名和参数校验都如此.最好的方式就是按照示例,安安静静的拼json格式字符串

    2).**bizContent的参数数据格式都是“字符串”,如果你给的数据自己这边定义的是数字,放入字符串时,请转成字符串【json对象里面用引号引起来】,否则报系统错误,你会N脸懵逼的【支付宝那边应该把所有自定义参数都当成字符串格式了,java强类型对类型不匹配会直接返回错误】。

    3). 发券成功后,返回值的partId,使用发券接口支付宝返回的该参数,不要自己乱造参数返回。

相关文章

网友评论

      本文标题:支付宝卡券开发遇到的坑

      本文链接:https://www.haomeiwen.com/subject/ykmfjktx.html