有一个游戏的个人小程序 支付功能,服务器只要支付功能,有人能做吗

小程序get方式发送接收参数,与服务器通信-小程序支付开发4
小程序的开发文档,
对小程序的各个api都介绍得很详细,
还有对应的案例代码。
子恒老师在课程中,
一般的小程序api接口,
都是直接拿来用,
不会对它们作介绍。
但是有些小程序跟服务器通信的接口,
官方的开发文档没有服务器端的代码,
子恒老师会在课程中跟大家分享怎么使用,
包括小程序前端代码和服务器后端代码。
充值支付小程序开发课程,
分为三个大的模块,
1、 涉及到的基本接口介绍使用
2、 充值小程序前端页面
3、 充值小程序服务器后端处理
我们从第一大模块开始,
今天讲小程序跟web服务器,
怎么通过get方式跟服务器通信,
1、 小程序get请求头信息设置,
2、 参数怎么提交,
3、 怎么接收服务器返回的数据
web服务器端
1、 怎么接收小程序传递过来的参数
2、 处理数据
3、 怎么返回json数据给小程序
讲解更详细
在线观看地址
没有更多推荐了,
不良信息举报
举报内容:
小程序get方式发送接收参数,与服务器通信-小程序支付开发4
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!小程序接入微信支付的流程 - 简书
小程序接入微信支付的流程
近日开发一个顺风小巴的小程序,开发还是比较简单的,只是有些语法真是反人类,主要难点是微信支付,其他的调调接口渲染一下数据就ok了,下面就详细说一下整个流程及中间遇到的坑。
1、准备工作
a、小程序账号申请
像申请公众号一样,要求企业资质,另外交给企鹅300块钱。
b、微信支付商家平台申请
申请支付功能必不可少的部分,期间踩了一个坑,老板为了节省三百块钱,用一个老的商户平台id绑定到小程序上,结果调试的时候一直报错,提示appid与商家MCHID不匹配,然后小程序无法解绑商户号,只能重新申请小程序和商户号。既耽误了时间又多花了钱。
c、下载商家证书
在商家平台上下载证书,解压放到sdk文件存储证书对应位置
d、服务器https验证
小程序要求服务器必须是https的,并且不是所有https都可以, 这个地址可以进行测试,测试通过即可使用,否则可能出现真机测试无法获取数据的问题。
e、下载jsapi的SDK
SDK文档下载地址
之后修改SDK的配置文件WxPay.Config.php
const APPID = 'wx97fs3234d88desb';
const APPSECRET = 'ef103ba456beb721e957';
const MCHID = '';
const KEY = 'Niskh5WfdsdfsdWYkr8lrddwsHyE78m2sE';
a、微信登录
通过code到服务器获取用户openid,然后存储到小程序本地,用以后续与服务器交互
wx.login({
success: function (res1) {
var code = res1.
wx.request({
url: 'https://服务器/example/login.php',
method:'GET',
code: code
success: function (res) {
var uid = res.
console.log(uid)
wx.setStorage({
key: "uid",
console.log('同步保存成功')
wx.getUserInfo({
success: function (res) {
console.log(res.data)
that.globalData.userInfo = res.userInfo
typeof cb == "function" && cb(that.globalData.userInfo)
b、获取列表
wx.request({
url: 'https://接口地址',
method: 'GET',
success: function (res) {
var noStartList = res.data.noStartL
that.setData({
noStartList: noStartList,
hiddenLoading: !that.data.hiddenLoading
c、微信支付
小程序端先调用服务器,让服务器创建订单,然后服务器去请求微信支付服务后台生成预支付交易单,返回正确的预支付交易后由小程序端调起支付。
wx.request({
url: 'https://调用服务器获取微信统一下单数据',
method: 'GET',
data: { uid: uid, id: id },
success: function (res) {
var nowTime = new Date()
var appId = res.data.appid
var timeStamp1 = Math.round((nowTime.getTime()) / 1000)
var timeStamp = timeStamp1.toString()
var nonceStr = res.data.nonce_str
var package = "prepay_id=" + res.data.prepay_id
var signType = "MD5"
var key = "Niskh5234234WYk4323HyE78m2sE"//商户平台的key
var sign = res.data.sign
var paySign = md5.hexMD5("appId=" + appId + "&nonceStr=" + nonceStr + "&package=" + package + "&signType=MD5&timeStamp=" + timeStamp + "&key=" + key)
wx.requestPayment({
timeStamp: timeStamp,
//随机字符串,长度为32个字符以下。
nonceStr: nonceStr,
//统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=*
package: package,
//签名算法,暂支持 MD5
signType: 'MD5',
paySign: paySign,
success: function (res) {
fail: function (res) {
complete: function (res) {
服务器端逻辑
//①、获取传递参数
//②、生成订单
//3、统一向微信端下单
$input = new WxPayUnifiedOrder();
$input-&SetBody("顺风小巴购票");
$input-&SetAttach("顺风小巴购票");
$input-&SetOut_trade_no($data['oId']);
$input-&SetTotal_fee($data['price']*100);
$input-&SetTime_start(date("YmdHis"));
$input-&SetTime_expire(date("YmdHis", time() + 600));
$input-&SetNotify_url("http://服务器/notify.php");
$input-&SetTrade_type("JSAPI");
$input-&SetOpenid($openId);
$order = WxPayApi::unifiedOrder($input);
header("Content-Type: application/json");
echo json_encode($order);
这时候还需要在服务器端完善回调函数notify.php
//重写回调处理函数
public function NotifyProcess($data, &$msg)
Log::DEBUG("call back:" . json_encode($data));
$notfiyOutput = array();
if(!array_key_exists("transaction_id", $data)){
$msg = "输入参数不正确";
//查询订单,判断订单真实性
if(!$this-&Queryorder($data["transaction_id"])){
$msg = "订单查询失败";
//根据 $data["out_trade_no"] 订单号 更新订单状态
//更新订单状态逻辑代码
整个支付过程就完成了,尤其注意的就是支付需要的参数及参数加密顺序,其他的调试一下基本就ok了。
本帖最后由 微信小程序社区管理员 于
17:36 编辑(500+个DEMO和800+篇教程)===1:微信小程序官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=12:微信小程序简易...
作者 | JeffChen来源 | 微信公众号:移动开发技术 小程序中微信支付的能力是随着小程序的发布一并推出的,然而小程序文档里关于微信支付接口只有一个 requestPayment 函数的描述。 这个 requestPayment 函数确实是小程序前端唯一需要调用的函数...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习; 首先感谢几位给予建议的同学,包括@dzp @M-信念 @Somnus13 ,以下内容只是一部分,但是够用了,可以先放出来给大家看看:**一:微信小程序的特点**张小龙:张小龙全...
昨日芳菲艳 怡然斗诗篇 秋水共长天 花落有谁怜
如果遇到 问题一: Description : Could not find the specified file. Suggestion : Check that the path you have specified is correct. Technical Info...
4. 天主教堂式裙拖, 这种裙拖拖地约2-2.5米左右, 适合有一定规模的天主教堂婚礼穿着
如果可以,我愿意用身体的残缺,换得思想的健全与丰满!
按照老师要求,天天画下来,感觉自己更加喜欢了,而且速度也快了一些; 看看自己?成果,虽然还有不足,但是很有成就感啊~ 请老师点评~尊敬的极客用户,您好!
感谢您一直关注并使用极客头条,为了给您带来良好的体验效果及性能,极客头条将于日关闭,您可以在
中继续使用发布文章功能并看到已经发布成功的文章。
主题信息(必填)
主题描述(最多限制在50个字符)
申请人信息(必填)
申请信息已提交审核,请注意查收邮件,我们会尽快给您反馈。
如有疑问,请联系
CSDN &《程序员》研发主编,投稿&纠错等事宜请致邮
你只管努力,剩下的交给时光!
如今的编程是一场程序员和上帝的竞赛,程序员要开发出更大更好、傻瓜都会用到软件。而上帝在努力创造出更大更傻的傻瓜。目前为止,上帝是赢的。个人网站:www.xttblog.com。个人QQ群:、
个人大数据技术博客:https://www.iteblog.com
声明:本文来自移动开发技术公众号(C_programming),授权CSDN转载,如需转载请联系作者。
作者: JeffChen,目前在微信支付的技术支持团队,主要负责对外的技术咨询,目前主要关注方向是移动支付相关技术,以及移动支付在各个行业的应用。
责编:陈秋歌,关注微信开发等领域,寻求报道或者投稿请发邮件chenqg#csdn.net。
欢迎加入“微信开发技术”群,参与热点、难点技术交流。请加群主微信「Rachel_qg」,申请入群,务必注明「姓名+公司+职位」。
小程序中微信支付的能力,是随着小程序的发布一并推出的,然而小程序文档里关于微信支付接口只有一个requestPayment函数的描述。这个requestPayment函数确实是小程序前端唯一需要调用的函数,但是微信支付的成功接入实际远远不止这一个函数,对于没有接入过微信支付的开发者,会觉得一头雾水,完全没法下手。本文阐述如何从零开始接入小程序支付,尤其适合那些没有微信支付接入经验的开发者。1. 申请微信支付小程序认证以后,可以在小程序后台,微信支付菜单栏,申请微信支付。填写企业信息和对公账户,微信支付会打一笔随机金额到对公账户,输入金额完成验证后,在线签署迁移,即完成了微信支付的申请流程。微信支付申请完,会发送微信支付商户号,商户平台用户名密码等信息到注册者邮箱。2. 准备工作2.1
配置小程序密钥小程序后台设置页,点击生成,管理员验证二维码后,会随机生成AppSecret。请妥善保管好Appsecret,不要明文存储于服务器,AppSecret用于和微信服务器交互。比如获取用户的openid接口就需要用到.2.2
设置密钥和下载证书用申请微信支付获得的用户名和密码,登录商户平台(pay.weixin.qq.com),在账户中心,API安全中下载证书和设置密钥。密钥是32位,设置以后需要妥善保管,因为无法查看密钥,所有微信支付相关的接口都会使用这个密钥加密。2.3 配置HTTPS服务器
小程序的前端是使用微信提供的框架开发,但是后台依然是开发者自己的服务器。小程序发起的是HTTPS请求,意味着小程序开发者必须配置HTTPS服务器。配置HTTPS服务器之前,先要获取证书,证书可以向相关机构购买,腾讯云目前可以向用户提供免费的证书。证书安装指引,可以参考这里: 3. 微信支付流程微信支付有多种支付方式,包括刷卡支付,公众号支付,扫码支付,APP支付,所有微信支付的接口都可以在这里找到:
。小程序是在微信里调起支付的,其实是公众号支付,关于公众号支付的详细文档可以这里找到: 。所有公众号支付相关的链接都可以在此链接找到,开发者首先需要大概了解这些接口
小程序公众号支付的主要流程如下(本图只考虑了正常流程,异常流程参考公众号支付文档):3.1 关于OpenID上述流程中请求OpenID,用的是小程序最新API中的接口,开发者可以查看小程序的登录接口。开发者从第三方服务器获得的OpenID,在统一下单的接口里面需要使用到.3.2 关于小程序调起微信支付上述流程中的小程序调起微信支付,用的是小程序微信支付接口wx.requestPayment,该接口的详细描述可以查看小程序的微信支付API。这个接口中的package和timeStamp参数是从开发者的第三方服务器返回的,package是第三方服务器从统一下单接口回复中获得。接口中其他的参数,appId,noceStr,signType以及paySign则由小程序这边存储或者计算而得。其中paySign是签名,签名算法文档在这里:
整个公众号支付的主要流程基本都是在第三方服务器上实现,开发者需要熟读公众号支付文档,了解消息交互流程以及每个接口。这里并没有描述正常微信支付必不可少的一些功能:异常处理,查询订单,发起退款,下载对账单等等。4. 小程序与JSSDK微信支付比较JSSDK的微信支付接口是公众号里用JS调起公众号支付的方法,具体可以参考公众平台的文档。可以看到,小程序和JSSDK的微信支付非常类似,这里比较一下两者的区别:CSDN与微信支付团队联合开设了,多位微信支付团队的技术专家坐阵,在线解答大家在微信支付开发接入过程中的技术问题。大家在微信支付开发过程中遇到的任何问题,欢迎来本论坛发问。“微信支付”论坛板块:大家也可以扫描下面二维码,加入CSDN微信开发者群,微信支付专家在线帮您答疑解惑。客服:95017
HTTPS服务器配置
一、SSL证书申请
1、确认需要申请证书的域名
2、生成私钥和csr文件
在linux机器上执行以下命令生成私钥
genrsa -out server.key 2048
在linux机器上执行以下命令生成csr文件
req -new -key server.key -out certreq.csr
以下黑色标识文字仅供参考,请根据商户自己实际情况进行填写
Country Name: CN
//您所在国家的ISO标准代号,中国为CN
State or Province Name:guandong
//您单位所在地省/自治区/直辖市
Locality Name:shenzhen
//您单位所在地的市/县/区
Organization Name: Tencent Technology (Shenzhen) Company Limited
//您单位/机构/企业合法的名称
Organizational Unit Name: R&D
//部门名称
Common Name: www.example.com
//通用名,例如:www.itrus.com.cn。此项必须与您访问提供SSL服务的服务器时所应用的域名完全匹配。
Email Address:
//您的邮件地址,不必输入,直接回车跳过
&extra&attributes
//以下信息不必输入,回车跳过直到命令执行完毕。
执行上面的命令后,在当前目录下即可生成私钥文件server.key和certreq.csr csr文件
3、将生成的csr文件提交给第三方证书颁发机构申请对应域名的服务器证书,同时将私钥文件保存好,以免丢失。
4、证书申请后,证书颁发机构会提供服务器证书内容和两张中级CA证书,请按证书颁发机器说明生成服务器证书,此处假设服务器证书文件名称为server.pem
5、将生成的私钥文件server.key和服务器证书server.pem拷贝至服务器指定的目录即可进行HTTPS服务器配置
二、HTTPS服务器配置
1、 Nginx配置
#指定ssl监听端口
server_name
www.example.
#开启ssl支持
ssl_certificate
/etc/nginx/server.pem;
#指定服务器证书路径
ssl_certificate_key
/etc/nginx/server.key;
#指定私钥证书路径
ssl_session_timeout
ssl_protocols TLSv1 TLSv1.1
#指定SSL服务器端支持的协议版本
ssl_ciphers
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
#指定加密算法
ssl_prefer_server_
#在使用SSLv3和TLS协议时指定服务器的加密算法要优先于客户端的加密算法
#以下内容请按域名需要进行配置,此处仅供参考
location / {
return 444;
2、其它web服务器配置
请参考文档:《服务器证书配置指南》
三、相关事项
1、证书颁发机构
推荐天威诚信,具体请见:
2、 参考文档
《ngx_http_ssl_module》
《nginx配置HTTPS服务器》
《服务器证书配置指南》
3、常见问题
(1)证书受信任的问题
部分国内签发的SSL证书,在Android上不受信任,推荐GeoTrust;
(2)如果页面有动静分离,静态资源使用独立域名的话,也需要为该域名申请证书;
(3)android低版本不支持SNI扩展,受此限制,一台服务器只能部署一个数字证书;

我要回帖

更多关于 小程序支付功能开发 的文章

 

随机推荐