择要:调换openid-同一下单-发起付出,三步走,此中二次署名比力坑人。
该demo源码已托管到码云:https://git.oschina.net/dotton/lendoo-wx,欢迎下载。
理论上集成微信付出的全部工作可以在小程序端完成,由于小程序js有访问网络的本领,但是为了安全,不袒露敏感key,而且可以利用官方提供的现成phpdemo更省力,于是在服务端完成署名与发起哀求,小程序端只做一个wx.requestPayment(OBJECT)接口的对接。
团体集成过程与JSAPI、APP雷同,先同一下单,然后拿返回的结果来哀求付出。
一共三步:
小程序端通过wx.login的返回的code调换openid
服务端向微信同一下单
小程序端发起付出
事先预备好这几样东西:
PHPSDK,下载链访问文尾
第1、4样是申请小程序时得到的,第2、3样是申请开通微信付出时得到的,留意第3、4样长得比力像,着实是2个东西,两者肴杂将导致署名通不外。
向微信端下单,得到prepay_id
“
1.创建一个Controller,引并WxPay.Api.php类
之后可以通过index.php/wxpay来作访问哀求
“
2.修改设置文件WxPay.Config.php
改成本身申请得到相应key
“
3.实现index方法
阐明1:文档上提到的nonce_str不是没提交,而是sdk帮我们填上的
出处在WxPay.Api.php第55行
阐明2:sign也已经盛意地给setSign了,出处在WxPay.Data.php第111行,MakeSign()中
“
4.小程序内调用登录接口,获取openid
向微信登录哀求,拿到code,再将code提交调换openId
从控制台看到已经乐成拿到openid,剩下的事变就是将它传到服务端就好了,服务端那边$this-input-post('openId')等着收呢。
“
5.小程序端向https://lendoo.leanapp.cn/index.php/WXPay发起哀求,作同一下单
得到如下结果
条件是https://lendoo.leanapp.cn已经在白名单:
“
6.小程序端调起付出API
模仿器测试,将弹出一个二维码供扫描
结果报了一个错误:
key必要参加到署名中!!!'appId='+appId+'nonceStr='+nonceStr+'package='+pkg+'signType=MD5timeStamp='+timeStamp+"key=d27551c7803cf16*e536b192d5d03b"这才是完备的。
但是文档里显着没提到key啊
付出乐成截图
吐槽完文档再吐槽下定名规则,GetSpbill_create_ip()、IsSpbill_create_ipSet()都是些什么鬼一会儿下划线分隔一会儿驼峰分隔,成员方法首字母还大写,unifiedOrder()这种端庄写法也不忘来比划两下,看来网上说大公司的sdk都是练习生撰写是真事,可codereviewer又在那边?
小程序端文档出处:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-pay.html#wxrequestpaymentobject
微信付出服务端侧文档出处:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1
类比文档出处:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1
开辟步调:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3index=1
sdk下载:https://pay.weixin.qq.com/wiki/doc/api/download/WxpayAPI_php_v3.zip
保举阅读
再见!这些科技将会与2016一同消失
周一见|7款国产实战开源项目让通讯超简单!
开源中国2017元旦寄语
Win10Build14997界面曝光;JVM开辟语言Kotlin发布新版|软件周刊
小程序来了,它的运气怎样?崛起?还是……|源资讯
8分钟回顾开源巨头Facebook的2016
点击“阅读原文”查察更多出色内容
我要评论