嗨,欢迎来到阿拉丁指数
  • 登录 注册
小程序
小程序码 扫码使用小程序
研究报告
行业活动
    阿拉丁小教程|程序猿抢“妹”新手法曝光
    2018-03-13 08:00 11802

    栏目:#阿拉丁小教程#

    #阿拉丁小教程#是由阿拉丁团队独家创办的纯技术应用及学术交流专栏。该栏目将与各位程序员交流小程序开发中会遇到的各类不同纬度的重要技术问题。我们的目标是,更加快捷、简单,包教包会。这是今年阿拉丁对程序员们致敬和关怀的系列之作。希望大家作为常态关注!感谢大家。

    第2期:程序猿抢“妹”新手法曝光


    蘑菇街,贝贝拼团,女王的新款……一个又一个购物小程序让妹子欲罢不能,比在APP购物中毒程度更深?作为程序猿的你有没有想过,小程序是如何让妹子们实现支付的?(看标题就想歪的请自觉面壁思过,我们来说点正经的)


    今天的阿拉丁小教程来给大家介绍一下小程序支付的接入方法:


    作为公众平台一种新的账号类型,小程序申请微信支付的门槛和其他类型公众号一致,都需要通过微信认证。申请方式分为两种:


    第一种:新申请


    1.填写资料

    2.经过微信支付审核

    3.签约开户,获得一个全新的微信支付商户号



    第二种:已有商户号


    绑定已有商户号,可快速获取微信支付能力


    小程序支付的开发类似于其他的微信支付方式,都需要经过统一下单、支付结果通知(回调),流程如下:


    1、调用wx.login登录接口,获取到用户的openid。Api详见【小程序登录API】

    https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html?t=20161122

    2、server调用支付统一下单接口。Api详见【统一下单API】

    https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1

    3、server调用再次签名接口。Api详见【再次签名】

    https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7

    4、server接收支付通知接口。Api详见【支付结果通知API】

    https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7

    5、server查询支付结果接口。Api详见【查询订单API】

    https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_2


    小程序的具体实现



    第一步:先通过wx.login获取到登录的凭证code,通过code获取openid

    接口地址:https://www.see-source.com/weixinpay/GetOpenId


    第二步:调用微信的统一下单接口,返回预订单prepay_id

    接口地址:https://www.see-source.com/weixinpay/xiadan

     

    第三步:再次签名

    这是小程序区别于其他微信支付的地方,需要对拿到的repay_id进行再次签名

    接口地址:https://www.see-source.com/weixinpay/sign

     

    第四步:通过wx.requestPayment调起支付api,用户输入密码完成支付


    示例代码

    wx.requestPayment({

    ‘timeStamp’: obj.timeStamp,

    ‘nonceStr’: obj.nonceStr,

    ‘package’: obj.package,

    ‘signType’: obj.signType,

    ‘paySign’: obj.paySign,

    ‘success’: function(res){},

    ‘fail’: function(res){}

    })


    还有个接口是查询订单的,这个不是必须的,根据需要使用。



    接口的实现


    1.使用登录凭证code获取session_key和openid,处理统一下单的参数(签名和组装xml)

    2. 发起POST请求,统一下单后拿到的xml结果

    3. 解析请求得到的结果

    4. 序列化相应对象返回给小程序,以供小程序使用


    THE END

    本文章仅代表作者观点,不代表阿拉丁官方立场,本文系作者授权 阿拉丁指数平台( aldzs.com)、阿拉丁指数公众号发表,未经许可,不得转载。

    上升最快
    新进榜单
      跌出榜单
        • 阿拉丁服务顾问

        • 阿拉丁数据助手

        • 体验指数小程序