小程序上传数据php 小程序上传数据springboot接收

tp中微信小程序上传怎么写

第一步 先把文件夹的那两个图片 配置成一样的路径 除了域名要改 其他保持一致。

我们提供的服务有:成都做网站、网站设计、微信公众号开发、网站优化、网站认证、浦江ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的浦江网站制作公司

第二步 把 Weixinpay 这个文件夹放在 \ThinkPHP\Library\Vendor 将Weixinpay文件夹放置到这个Vendor文件夹中

第三步 把 WxJsAPIController.class.php 这个php文件 \Home\Controller 这里面

第四步 把 WxJsAPI这个文件夹 放置在 \Home\View 这个里面

第五步 成功调用微信公众号支付功能

jsApiCall.html

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

!DOCTYPE html

html

head

meta http-equiv="Content-Type" content="text/html; charset=utf-8" /

meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0'/

title微信安全支付/title

script type="text/javascript"

//调用微信JS api 支付

function jsApiCall()

{

WeixinJSBridge.invoke(

'getBrandWCPayRequest',

?php echo $jsApiParameters; ?,

function(res){

WeixinJSBridge.log(res.err_msg);

if(res.err_msg == "get_brand_wcpay_request:ok"){

//alert(res.err_code+res.err_desc+res.err_msg);

/*这里写如果支付成功的话执行什么操作*/

}else{

//返回跳转到订单详情页面

alert(支付失败);

}

}

);

}

function callpay()

{

if (typeof WeixinJSBridge == "undefined"){

if( document.addEventListener ){

document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);

}else if (document.attachEvent){

document.attachEvent('WeixinJSBridgeReady', jsApiCall);

document.attachEvent('onWeixinJSBridgeReady', jsApiCall);

}

}else{

jsApiCall();

}

}

/script

/head

body

button style="width:210px; height:30px; background-color:#FE6714; border:0px #FE6714 solid; cursor: pointer; color:white; font-size:16px;" type="button" onclick="jsApiCall()" id="asd" 购买/button

/p

/body

/html

WxJsAPIController.class.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

?php

namespace Home\Controller;

use Think\Controller;

class WxJsAPIController extends Controller{

public function _initialize()

{

//引入WxPayPubHelper

vendor('Weixinpay.WxPayPubHelper');

}

public function jsApiCall()

{

//使用jsapi接口

$jsApi = new \JsApi_pub();

//=========步骤1:网页授权获取用户openid============

//通过code获得openid

//

//

if (!isset($_GET['code']))

{

//触发微信返回code码

$rUrl=urlencode(C('WxConfig.JS_API_CALL_URL').'/id/'.$_GET[id]);

/*注意一下这个 id 是为了可以成功的传个 id值才这样写 如果你不需要的话也可以直接写成

$rUrl=urlencode(C('WxConfig.JS_API_CALL_URL'));

$this-redirect('WxJsAPI/jsApiCall',array('id' =55),0, '页面跳转中...');

我是这样穿这个id过来的值得你们也可以自己改成其他的来传这个id 或是删除他不要

*/

$url = $jsApi-createOauthUrlForCode($rUrl);

// echo $url;exit();

Header("Location: $url");

}else

{

//获取code码,以获取openid

$code = $_GET['code'];

$jsApi-setCode($code);

$openid = $jsApi-getOpenId();//openid 这里是为了获取用户当前的openid 如果你有做微信登陆的话就可以无视他。

}

//=========步骤2:使用统一支付接口,获取prepay_id============

//使用统一支付接口

$unifiedOrder = new \UnifiedOrder_pub();

/*此处做数据库的查询 这里操作数据库把产品信息显示出来*/

/*此处做数据库的查询 这里操作数据库把产品信息显示出来*/

//设置统一支付接口参数

//设置必填参数

//appid已填,商户无需重复填写

//mch_id已填,商户无需重复填写

//noncestr已填,商户无需重复填写

//spbill_create_ip已填,商户无需重复填写

//sign已填,商户无需重复填写

//

$NOTIFY_URL="你的域名/index.php/Home/WxJsAPI/notify";

$unifiedOrder-setParameter("openid",$openid);//openid

$unifiedOrder-setParameter("body",'商品的名字');//商品描述

$unifiedOrder-setParameter("out_trade_no",'123456789');//商户订单号

$unifiedOrder-setParameter("total_fee",1*100);//总金额 微信的钱1*100等于1

$unifiedOrder-setParameter("notify_url",$NOTIFY_URL);//通知地址

$unifiedOrder-setParameter("trade_type","JSAPI");//交易类型

//非必填参数,商户可根据实际情况选填

//$unifiedOrder-setParameter("sub_mch_id","XXXX");//子商户号

//$unifiedOrder-setParameter("device_info","XXXX");//设备号

//$unifiedOrder-setParameter("attach","XXXX");//附加数据

//$unifiedOrder-setParameter("time_start","XXXX");//交易起始时间

//$unifiedOrder-setParameter("time_expire","XXXX");//交易结束时间

//$unifiedOrder-setParameter("goods_tag","XXXX");//商品标记

//$unifiedOrder-setParameter("openid","XXXX");//用户标识

//$unifiedOrder-setParameter("product_id","XXXX");//商品ID

$prepay_id = $unifiedOrder-getPrepayId();

// echo $prepay_id;exit();

//=========步骤3:使用jsapi调起支付============

$jsApi-setPrepayId($prepay_id);

$jsApiParameters = $jsApi-getParameters();

$WEB_HOST='你的域名';//填写的话 如 a rel="nofollow" href="" target="_blank";/a 最后面不用加 /

$this-assign('HOSTS',$WEB_HOST);

$this-assign('jsApiParameters',$jsApiParameters);

$this-display();

//echo $jsApiParameters;

}

public function notify()

{

//使用通用通知接口

$notify = new \Notify_pub();

//存储微信的回调

$xml = $GLOBALS['HTTP_RAW_POST_DATA'];

$notify-saveData($xml);

//验证签名,并回应微信。

//对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,

//微信会通过一定的策略(如30分钟共8次)定期重新发起通知,

//尽可能提高通知的成功率,但微信不保证通知最终能成功。

if($notify-checkSign() == FALSE){

$notify-setReturnParameter("return_code","FAIL");//返回状态码

$notify-setReturnParameter("return_msg","签名失败了啊");//返回信息

}else{

$notify-setReturnParameter("return_code","SUCCESS");//设置返回码

}

$returnXml = $notify-returnXml();

echo $returnXml;

//==商户根据实际情况设置相应的处理流程,此处仅作举例=======

//以log文件形式记录回调信息

// $log_ = new Log_();

$log_name= ROOT."/Public/notify_url.log";//log文件路径

if($notify-checkSign() == TRUE)

{

if ($notify-data["return_code"] == "FAIL") {

//此处应该更新一下订单状态,商户自行增删操作

log_result($log_name,"【通信出错】:\n".$xml."\n");

}

elseif($notify-data["result_code"] == "FAIL"){

//此处应该更新一下订单状态,商户自行增删操作

log_result($log_name,"【业务出错】:\n".$xml."\n");

}

else{

/*查看支付成功的返回值请去 a rel="nofollow" href="" target="_blank";/a */

$xmlss=$notify-data["out_trade_no"];//订单号

$total_fee=$notify-data['total_fee'];//订单总金额,单位为分,详见支付金额

/*更新订单状态这里写数据库的操作*/

/*更新订单状态这里写数据库的操作*/

//此处应该更新一下订单状态,商户自行增删操作

log_result($log_name,"【支付成功】:\n".$xml."\n");

}

//商户自行增加处理流程,

//例如:更新订单状态

//例如:数据库操作

//例如:推送支付完成信息

}

}

// 打印log

public function log_result($file,$word)

{

$fp = fopen($file,"a");

flock($fp, LOCK_EX) ;

fwrite($fp,"执行日期:".strftime("%Y-%m-%d-%H:%M:%S",time())."\n".$word."\n\n");

flock($fp, LOCK_UN);

fclose($fp);

}

}

?

希望我的回答可以帮到您哦

各位大神,微信小程序用户上传的图片怎么用PHP存储到数据库?

通常是将图片的地址存储到数据库,上传之后,应该能获得图片的保存地址,然后把这个图片地址以字符串形式存储到数据库里。

微信小程序如何使用PHP实现文件上传

调用小程序文件上传api

服务器接收到微信post过来的文件之后,php处理代码和传统文件上传代码一样

微信小程序怎么向外部php文件传递参数

PAY页面往 js_api_call.php 传值 获取不到的问题

echo 是可以echo出来的 但是

这里不写死就会报错 $key0$

?php

/**

* JS_API支付demo

* ====================================================

* 在微信浏览器里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。

* 成功调起支付需要三个步骤:

* 步骤1:网页授权获取用户openid

* 步骤2:使用统一支付接口,获取prepay_id

* 步骤3:使用jsapi调起支付

*/

//获取信息

@$name="支付测试-包包";

@$price=0.01*100;

@$hyid=$_GET['hyid'];

@$out_trade_no=$_GET['num'];//订单号

include_once("../WxPayPubHelper/WxPayPubHelper.php");

//使用jsapi接口

$jsApi = new JsApi_pub();

//=========步骤1:网页授权获取用户openid============

//通过code获得openid

if (!isset($_GET['code']))

{

//触发微信返回code码

$url = $jsApi-createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL);

Header("Location: $url");

}else

{

//获取code码,以获取openid

$code = $_GET['code'];

$jsApi-setCode($code);

$openid = $jsApi-getOpenId();

}

//=========步骤2:使用统一支付接口,获取prepay_id============

//使用统一支付接口

$unifiedOrder = new UnifiedOrder_pub();

//设置统一支付接口参数

//设置必填参数

//appid已填,商户无需重复填写

//mch_id已填,商户无需重复填写

//noncestr已填,商户无需重复填写

//spbill_create_ip已填,商户无需重复填写

//sign已填,商户无需重复填写

$unifiedOrder-setParameter("openid","$openid");//商品描述

$unifiedOrder-setParameter("body","$name");//商品描述

//自定义订单号,此处仅作举例

$timeStamp = time();

$out_trade_no = WxPayConf_pub::APPID."$timeStamp";

$unifiedOrder-setParameter("out_trade_no","$out_trade_no");//商户订单号

$unifiedOrder-setParameter("total_fee","$price");//总金额

$unifiedOrder-setParameter("notify_url","");//通知地址

$unifiedOrder-setParameter("trade_type","JSAPI");//交易类型

//非必填参数,商户可根据实际情况选填

//$unifiedOrder-setParameter("sub_mch_id","XXXX");//子商户号

//$unifiedOrder-setParameter("device_info","XXXX");//设备号

//$unifiedOrder-setParameter("attach","XXXX");//附加数据

//$unifiedOrder-setParameter("time_start","XXXX");//交易起始时间

//$unifiedOrder-setParameter("time_expire","XXXX");//交易结束时间

//$unifiedOrder-setParameter("goods_tag","XXXX");//商品标记

$unifiedOrder-setParameter("attach","2");//会员ID

$prepay_id = $unifiedOrder-getPrepayId();

//=========步骤3:使用jsapi调起支付============

$jsApi-setPrepayId($prepay_id);

$jsApiParameters = $jsApi-getParameters();

//echo $jsApiParameters;

?

html

head

meta charset="utf-8"

title支付页面/title

script type="text/javascript"

//调用微信JS api 支付

function jsApiCall()

{

WeixinJSBridge.invoke(

'getBrandWCPayRequest',

?php echo $jsApiParameters; ?,

function(res){

WeixinJSBridge.log(res.err_msg);

if(res.err_msg == "get_brand_wcpay_requestk"){

window.location.href='/shop/successful.php?spmc=?php echo $name; ?price=?php echo $price; ?';

//history.go(-1);

}else{

window.location.href='/shop/pay.php';

}

}

);

}

if (typeof WeixinJSBridge == "undefined"){

if( document.addEventListener ){

document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);

}else if (document.attachEvent){

document.attachEvent('WeixinJSBridgeReady', jsApiCall);

document.attachEvent('onWeixinJSBridgeReady', jsApiCall);

}

}else{

jsApiCall();

}

/script

/head

/html

想做小程序,有一套php后台源码,也买了腾讯云和域名,安装了xmapp,上传了数据库,但是url怎么改呢

小程序:自建或嵌入【你这种有成型的源码,嵌入】

现在最关键的就是 先在腾讯云上将该套程序运行上线   然后配置https【新增访问端口:默认80-443】。测试https://网址能否访问   若能访问

在小程序的client目录下的page  首页【使用腾讯云搭建小程序的方式】

php上传文件的小程序,文件名是数字和英文的没问题,用中文就无法上传 看图:

上传文件是不能包含中文名的,可以生成新的文件名再上传。

如果想保留原文件名,可以写入数据库,然后输出时做一个专门的脚本,用于读取原文件名并输出。

我以MYSQL举例(输出脚本):

?php

$file = $_GET['downurl'];

$con = mysql_connect("数据库主机名","帐号","密码");

if(!$con)

exit(mysql_errno().":".mysql_error());

$sql = "SELECT * FROM fname WHERE fileurl='$file'";

$result = mysql_query($sql,$con);

$row = mysql_fetch_array($result);

header("Content-Disposition: attachment; filename='".$row['filename']."'")

echo file_get_contents($file);

?

有了这个脚本,那么还需要在MYSQL建立一个表fname。

执行以下SQL:

CREATE TABLE 'fname'

(

fileurl varchar(255),

filename varchar(255)

)

最后你在上传文件成功时加一个写入数据的操作:

?php

$con = mysql_connect("数据库主机名","帐号","密码");

if(!$con)

exit(mysql_errno().":".mysql_error());

$sql = "INSERT INTO fname(fileurl,filename) VALUES('文件URL','原文件名')";

?

文件URL我就不说了,你一定会弄。原文件名,可以通过$_FILES获取,具体如何获取,我就不写了,百度一下,W3SCHOOL,PHP手册都有。


网站栏目:小程序上传数据php 小程序上传数据springboot接收
转载注明:http://abwzjs.com/article/dodieos.html