来源:蜘蛛抓取(WebSpider)
时间:2018-01-17 14:41
标签:
微信小程序商户号在哪
扫码下载APP
您是个人用户,您可以认领企业号
账号密码登录
一周内自动登录
我同意并遵守
免密码登录
获取验证码
我同意并遵守
第三方账号登录
Hello,新朋友
在发表评论的时候你至少需要一个响亮的昵称
&>&&>&微信小程序接入微信支付,只需3步
微信小程序接入微信支付,只需3步
首发且原创
时间:05-17 10:12
阅读:1415次
来源:三尺信息科技
摘要:微信小程序开发出来后,想要用在线支付功能怎么办?毕竟在小程序里面实现微信支付的话还是会带来很大的便捷的。有过开发服务号下微信支付经验的亲会发现,其实小程序里的微信支付和服务号里面的开发过程很像。
移步到微官网原文链接:开发出来后,想要用在线支付功能怎么办?毕竟在小程序里面实现微信支付的话还是会带来很大的便捷的。有过开发服务号下微信支付经验的亲会发现,其实小程序里的微信支付和服务号里面的开发过程很像。那么具体过程是怎样的呢?移步到微种草君七嬷嬷带你瞧瞧:Step1:开通微信支付和微信商户号这个过程几乎就和开通服务号的微信支付一样。Step2:获得用户的 OpenID首先,我们需要在小程序的客户端的逻辑层中,获取当前用户的 OpenID。通过调用 wx.login方法,可以得到用户的code,然后开发者服务器使用登录凭证code 获取 openid。 wx.login({ success:
function (res) { if
(res.code) { //发起网络请求 wx.request({ url:
'https://yourwebsit/onLogin', method:
'POST', data:
{ code:
res.code }, success:
function (res) { var
openid = res.data. }, fail:
function (err) { console.log(err) } }) } else
{ console.log('获取用户登录态失败!'
+ res.errMsg) } } }); var
code = req.param("code"); request({ url:
"https://api.weixin.qq.com/sns/jscode2session?appid=" + appid + "&secret=" +
secret + "&js_code=" + code +
"&grant_type=authorization_code", method:
'GET' },
function (err, response, body) { if
(!err && response.statusCode == 200) { res.json(JSON.parse(body)); } });Step3:获取
prepay_id和支付签名验证paySign这一步的过程,和服务号里的微信支付过程一样。这个过程区分为客户端操作,以及服务器端的操作。首先来看一下客户端逻辑层实现。在服务号里,我们是通过如下的代码来调起支付功能: function
jsApiCall() { WeixinJSBridge.invoke('getBrandWCPayRequest',
{ "appId":
"", //公众号名称,由商户传入 "timeStamp":
"", //时间戳,自1970年以来的秒数 "nonceStr":
"", //随机串 "package":
"prepay_id=", "signType":
"MD5", //微信签名方式: "paySign":
"" //微信签名 },
function (res) { WeixinJSBridge.log(res.err_msg); if
(res.err_msg == "get_brand_wcpay_request:ok") { ; } else
{ ; } }); }在小程序里,我们是通过 wx.requestPayment 方法调起支付功能。当然,在这之前,我们先要获取 prepay_id。 wx.request({ url:
'https://yourwebsit/service/getPay', method:
'POST', data:
{ bookingNo:
bookingNo, total_fee:
total_fee, openid:
openid }, header:
{ 'content-type':
'application/json' },
success: function (res) { wx.requestPayment({ 'timeStamp':
timeStamp ,
'nonceStr': nonceStr ,
'package': 'prepay_id=' + res.data.prepay_id ,
'signType': 'MD5' ,
'paySign': res.data._paySignjs ,
'success': function (res) { console.log(res); } ,
'fail': function (res) { console.log('fail:'
+ JSON.stringify(res)); } }) }, fail:
function (err) { console.log(err) } })在服务器端,我们需要实现的是 prepay_id
的获取,以及签名 paySign 的获取。 var
bookingNo = req.param("bookingNo"); var
total_fee = req.param("total_fee"); var
openid = req.param("openid"); var
body = "费用说明"; var
url = "https://api.mch.weixin.qq.com/pay/unifiedorder"; var
formData = ""; formData
+= "appid"; //appid formData
+= "test"; formData
+= "" + body + ""; formData
+= "mch_id"; //商户号 formData
+= "nonce_str"; formData
+= "notify_url"; formData
+= "" + openid + ""; formData
+= "" + bookingNo + ""; formData
+= "spbill_create_ip"; formData
+= "" + total_fee + ""; formData
+= "JSAPI"; formData
+= "" + paysignjsapi(appid, attach, body, mch_id, nonce_str, notify_url, openid,
bookingNo, spbill_create_ip, total_fee, 'JSAPI') + ""; formData
+= ""; request({ url:
url, method:
'POST', body:
formData },
function (err, response, body) { if
(!err && response.statusCode == 200) { var
prepay_id = getXMLNodeValue('prepay_id', body.toString("utf-8")); var
tmp = prepay_id.split('['); var
tmp1 = tmp[2].split(']'); //签名 var
_paySignjs = paysignjs(appid, mch_id, 'prepay_id=' + tmp1[0], 'MD5',
timeStamp); var
o = { prepay_id:
tmp1[0] ,
_paySignjs: _paySignjs } res.send(o); } });下面是用到的函数: function
paysignjs(appid, nonceStr, package, signType, timeStamp) { var
ret = { appId:
appid, nonceStr:
nonceStr, package:
package, signType:
signType, timeStamp:
timeStamp }; var
string = raw1(ret); string
= string + '&key=' + console.log(string); var
crypto = require('crypto'); return
crypto.createHash('md5').update(string, 'utf8').digest('hex'); }; function
raw1(args) { var
keys = Object.keys(args); keys
= keys.sort() var
newArgs = {}; keys.forEach(function
(key) { newArgs[key]
= args[key]; }); var
string = ''; for
(var k in newArgs) { string
+= '&' + k + '=' + newArgs[k]; } string
= string.substr(1); return
}; function
paysignjsapi(appid, attach, body, mch_id, nonce_str, notify_url, openid,
out_trade_no, spbill_create_ip, total_fee, trade_type) { var
ret = { appid:
appid, attach:
attach, body:
body, mch_id:
mch_id, nonce_str:
nonce_str, notify_url:
notify_url, openid:
openid, out_trade_no:
out_trade_no, spbill_create_ip:
spbill_create_ip, total_fee:
total_fee, trade_type:
trade_type }; var
string = raw(ret); string
= string + '&key=' + var
crypto = require('crypto'); return
crypto.createHash('md5').update(string, 'utf8').digest('hex'); }; function
raw(args) { var
keys = Object.keys(args); keys
= keys.sort() var
newArgs = {}; keys.forEach(function
(key) { newArgs[key.toLowerCase()]
= args[key]; }); var
string = ''; for
(var k in newArgs) { string
+= '&' + k + '=' + newArgs[k]; } string
= string.substr(1); return
}; function
getXMLNodeValue(node_name, xml) { var
tmp = xml.split(""); var
_tmp = tmp[1].split(""); return
_tmp[0];}好啦,简简单单三步,so
easy是不是?就可以实现对接微信支付功能了。上一个效果图:
声明:本文由三尺信息科技企业号发布,依据企业号用户协议,该企业号为文章的真实性和准确性负责。创头条作为品牌传播平台,只为传播效果负责,在文章不存在违反法律规定的情况下,不继续承担甄别文章内容和观点的义务。
关注企业号
移步到微是基于微信企业号平台而开发的以流程审批与万能表单为核心的新一代移动办公系统。通过移步到微平台,企业可以让员工更好地使用微信进行移动化办公。
TA的其他文章
14493次阅读
14594次阅读
14417次阅读
14678次阅读
19517次阅读
24小时热文
5460次阅读
4988次阅读
4978次阅读
4941次阅读
4936次阅读
4906次阅读
4877次阅读
4843次阅读
16您已经赞过了
阅读下一篇
南京交警与共享单车企业联手整治“弃车拒罚”者【已解决】问:小程序开通微信支付,新注册的小程序,怎么绑定已有的商户号 ... ...
评论: 0|原作者: 风之影|来自: 微信公众平台
摘要: 【已解决】问:小程序开通微信支付,新注册的小程序,怎么绑定已有的商户号
开通微信支付,新注册的小程序,怎么绑定已有的商户号????网友回复:派***:还有就是,商户密码是什么 ?是登录微信支付商户平台的密码吗?陈***:1.商户平台的密码在邮件上2.在开通商户那里有两个选择,一个是新开,一个是绑定已有的商户——来自一个程序员的个人公众号零零糖的友情回答派***:棒棒的派***:系统记录
上一篇:下一篇:
最新小程序开发问答
最新小程序开发帖子
热门小程序源码
热门小程序开发教程
来了这么久,进去看看吧
Powered by Discuz! X3.2客服:95017
最常规的普通模式,适用于有自己开发团队或外包开发商的直连商户收款。
2、账号申请指引
1. 申请小程序开发者账号,进行微信认证,获取appid登录mp.weixin.qq.com,注册一个小程序的开发者账号。申请指引:https://mp.weixin.qq.com/debug/wxadoc/introduction/index.html
获取到小程序开发者账号后,进行微信认证。微信认证指引:小程序申请微信认证
小程序开通微信支付,即申请或复用微信支付商户号
申请完小程序后,登录小程序后台(mp.weixin.qq.com)。点击左侧导航栏的微信支付,在页面中进行开通。
点击开通按钮后,有2种方式可以获取微信支付能力,新申请微信支付商户号或绑定一个已有的微信支付商户号,请根据你的业务需要和具体情况选择,只能二选一。开通指引:
2、开发指引
除被扫支付场景以外,商户系统先调用统一下单接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易回话标识后再按扫码、JSAPI、APP、小程序等不同场景生成交易串调起支付,具体API接口请查看"API列表"
appid必须为最后拉起收银台的小程序appid;
mch_id为和appid成对绑定的支付商户号,收款资金会进入该商户号;
trade_type请填写JSAPI;
openid为appid对应的用户标识,即使用wx.login接口获得的openid