搜索
系统检测到您的用户名不符合规范:

ThinkPHP开发微信小程序微信支付分享

浏览:6251 发布日期:2017年05月11日 分类:技术分享 关键字: ThinkPHP 微信支付
首先你得有一个已经认证并且开通了微信支付的小程序。建议有认证公众号的直接用公众号创建,这样可以及时生效,避免重新走微信认证的审核机制花好几天。

1.在小程序后台和微信商户后台拿到下列数据
小程序:appID/appSecret
微信支付:商户号/加密key
2.开发一个小程序的支付页面比如 pay.wxml
3.在pay.js里调用 wx.login()接口得到code
4.提交上一步得到的code到你的服务器后台接口
5.服务器接口根据code/appId/appSecret参数获取openid$params = array(
'appid' => C('wxapp_config.appid'),
'secret' => C('wxapp_config.appsecret'),
'js_code' => $code,
'grant_type' => 'authorization_code',
);

echo $this->http('https://api.weixin.qq.com/sns/jscode2session', $params);
6.pay.js接收到返回的数据里面包含openid
7.pay.js根据openid/money想你的服务器后端支付接口发起请求
8.服务器支付接口接收到请求创建了一个自己的订单,然后调用微信支付统一下单接口得到预支付订单(这一步跟微信公众号支付的JSAPI一样的)
9.服务器用微信服务器返回的预支付订单数据构造签名数据(json格式)$jsapi['appId'] = $UnifiedOrderResult["appid"];
$jsapi['timeStamp'] = (string) time();
$jsapi['nonceStr'] = $this->getNonceStr();
$jsapi['package'] = "prepay_id=" . $UnifiedOrderResult['prepay_id'];
$jsapi['signType'] = 'MD5';
$jsapi['paySign'] = $this->MakeSign($jsapi);
$parameters = json_encode($jsapi);
echo$parameters;
10.pay.js获得你的服务器支付接口返回的支付字符串
11.把字符串序列化为object然后添加success和fail回调方法
12.wx.requestPayment()发起微信客户端支付请求var payobj = JSON.parse(json);
payobj.success = 'function(res){wx.showToast({title: "充值成功", icon: "success", duration: 2000});}';
payobj.fail = 'function(res){wx.showToast({title: "充值失败", icon: "success", duration: 2000});}';
console.log(payobj);
var result = wx.requestPayment(payobj);
console.log(result);
图片展示流程是这样:




可以扫描我们的小程序体验下:



最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
lyunservice
积分:1275 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /