小程序支付直接返回php,微信小程序支付 后端PHP,小程序支付后端php

微信小程序支付 后端PHP,小程序支付后端php

看文章 扫一扫 领红包哦

前端:比较简单,在对应的支付事件上进行网络请求就好:

微信小程序支付 后端PHP(二)

view_moneysure:function(){

var code = this.data.code;

console.log('code是' +code)

wx.request({

url: 'https://...com/pay.php',//这个链接是后端写的

header: {

'Content-Type': 'application/x-www-form-urlencoded'

},

data: {

code: code,

},

method: 'POST',

success: function (response) {

console.log( response.data);

// 发起支付

wx.requestPayment({

'appId': response.data.appId,

'timeStamp': response.data.timeStamp,

'nonceStr': response.data.nonceStr,

'package': response.data.package,

'signType': 'MD5',

'paySign': response.data.paySign,

'success': function (res) {

wx.showToast({

title: '支付成功'

});

console.log(res);

},

'fail': function (res) {

console.log(res)

}

});

},

fail: function (res) {

console.log(res)

}

})

},

后端代码:

1. pay.php //小程序请求的后端地址

/**

* Created by PhpStorm.

* User: UFO

* Date: 17/7/18

* Time: 下午5:31

*/

require_once ('WxPay.Api.php');

class WXPay {

function index() {

// 初始化值对象

$input = new WxPayUnifiedOrder();

// 文档提及的参数规范:商家名称-销售商品类目

$input->SetBody("testceshi");

// 订单号应该是由小程序端传给服务端的,在用户下单时即生成,demo中取值是一个生成的时间戳

$input->SetOut_trade_no(time().'');

// 费用应该是由小程序端传给服务端的,在用户下单时告知服务端应付金额,demo中取值是1,即1分钱

$input->SetTotal_fee("1");

$input->SetNotify_url("https://...com/notify.php");//需要自己写的notify.php

$input->SetTrade_type("JSAPI");

// 由小程序端传给后端或者后端自己获取,写自己获取到的,

$input->SetOpenid('UdhncondJcnkJnjknkcssdcAbckn');

//$input->SetOpenid($this->getSession()->openid);

// 向微信统一下单,并返回order,它是一个array数组

$order = WxPayApi::unifiedOrder($input);

// json化返回给小程序端

header("Content-Type: application/json");

echo $this->getJsApiParameters($order);

}

private function getJsApiParameters($UnifiedOrderResult)

{ //判断是否统一下单返回了prepay_id

if(!array_key_exists("appid", $UnifiedOrderResult)

|| !array_key_exists("prepay_id", $UnifiedOrderResult)

|| $UnifiedOrderResult['prepay_id'] == "")

{

throw new WxPayException("参数错误");

}

$jsapi = new WxPayJsApiPay();

$jsapi->SetAppid($UnifiedOrderResult["appid"]);

$timeStamp = time();

$jsapi->SetTimeStamp("$timeStamp");

$jsapi->SetNonceStr(WxPayApi::getNonceStr());

$jsapi->SetPackage("prepay_id=" . $UnifiedOrderResult['prepay_id']);

$jsapi->SetSignType("MD5");

$jsapi->SetPaySign($jsapi->MakeSign());

$parameters = json_encode($jsapi->GetValues());

return $parameters;

}

//这里是服务器端获取openid的函数

// private function getSession() {

// $code = $this->input->post('code');

// $url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.WxPayConfig::APPID.'&secret='.WxPayConfig::APPSECRET.'&js_code='.$code.'&grant_type=authorization_code';

// $response = json_decode(file_get_contents($url));

// return $response;

// }

}

$WxPay = new WXPay();

$WxPay->index();

2.  微信SDK 下载链接:https://pay.weixin.qq.com/wiki/doc/api/download/WxpayAPI_php_v3.zip

解压在lib文件夹下可以看到:

放到服务端可访问的目录下。

在WxPayConfig.php里面配置账号信息:

class WxPayConfig

{

//=======【基本信息设置】=====================================

//

/**

* TODO: 修改这里配置为您自己申请的商户信息

*

/php/2177.htmlwww.phpzy.comtrue/php/2177.htmlTechArticle微信小程序支付 后端PHP,小程序支付后端php 看文章 扫一扫 领红包哦 前端:比较简单,在对应的支付事件上进行网络请求就好: 微信小程序支付 后端PHP(二) view_moneysure:function(){ v...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值