jaspi.php,jsapi.php

header('Content-type:text/html; Charset=utf-8');

/*** 请填写以下配置信息 ***/

$appid = 'xxxxx'; //https://open.alipay.com 账户中心->密钥管理->开放平台密钥,填写添加了电脑网站支付的应用的APPID

$notifyUrl = 'http://www.xxx.com/alipay/notify.php'; //付款成功后的异步回调地址

$outTradeNo = uniqid(); //你自己的商品订单号,不能重复

$payAmount = 0.01; //付款金额,单位:元

$orderName = '支付测试'; //订单标题

$signType = 'RSA2';//签名算法类型,支持RSA2和RSA,推荐使用RSA2

//商户私钥,填写对应签名算法类型的私钥,如何生成密钥参考:https://docs.open.alipay.com/291/105971和https://docs.open.alipay.com/200/105310

$rsaPrivateKey='xxxxx';

/*** 配置结束 ***/

$aliPay = new AlipayService();

$aliPay->setAppid($appid);

$aliPay->setNotifyUrl($notifyUrl);

$aliPay->setRsaPrivateKey($rsaPrivateKey);

$aliPay->setTotalFee($payAmount);

$aliPay->setOutTradeNo($outTradeNo);

$aliPay->setOrderName($orderName);

$orderStr = $aliPay->getOrderStr();

?>

支付宝jsapi支付

if(!isInAlipayClient()):

?>

请使用支付宝扫码打开该网页:

api.php?text=<?php%20echo%20getCurrentUrl()?>

else:

?>

点击以下按钮唤起支付宝支付

点击调起支付宝支付

endif;

?>

function ready(callback) {

// 如果jsbridge已经注入则直接调用

if (window.AlipayJSBridge) {

callback && callback();

} else {

// 如果没有注入则监听注入的事件

document.addEventListener('AlipayJSBridgeReady', callback, false);

}

}

ready(function(){

document.querySelector('.orderstr').addEventListener('click', function() {

AlipayJSBridge.call("tradePay", {

orderStr: "<?php echo $orderStr?>"

}, function(result) {

if(result.resultCode!=9000){

//支付失败

alert(result.resultCode+":"+result.memo);

}else{

//支付成功

var info = eval('(' + result.result + ')');

$(".alert-success").html("支付成功! 订单号:"+info.alipay_trade_app_pay_response.out_trade_no+" 支付金额:¥"+info.alipay_trade_app_pay_response.total_amount);

$(".alert-success").show();

}

// alert(JSON.stringify(result));

});

});

});

class AlipayService

{

protected $appId;

protected $notifyUrl;

protected $charset;

//私钥值

protected $rsaPrivateKey;

protected $totalFee;

protected $outTradeNo;

protected $orderName;

public function __construct()

{

$this->charset = 'utf-8';

}

public function setAppid($appid)

{

$this->appId = $appid;

}

public function setNotifyUrl($notifyUrl)

{

$this->notifyUrl = $notifyUrl;

}

public function setRsaPrivateKey($saPrivateKey)

{

$this->rsaPrivateKey = $saPrivateKey;

}

public function setTotalFee($payAmount)

{

$this->totalFee = $payAmount;

}

public function setOutTradeNo($outTradeNo)

{

$this->outTradeNo = $outTradeNo;

}

public function setOrderName($orderName)

{

$this->orderName = $orderName;

}

/**

* 获取orderStr

* @return array

*/

public function getOrderStr()

{

//请求参数

$requestConfigs = array(

'out_trade_no'=>$this->outTradeNo,

'total_amount'=>$this->totalFee, //单位 元

'subject'=>$this->orderName, //订单标题

'product_code'=>'QUICK_MSECURITY_PAY', //销售产品码,商家和支付宝签约的产品码,为固定值QUICK_MSECURITY_PAY

'timeout_express'=>'2h', //该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。

// 'store_id'=>'', //商户门店编号。该参数用于请求参数中以区分各门店,非必传项。

// 'extend_params'=>array(

// 'sys_service_provider_id'=>'' //系统商编号,该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的PID

// )

);

$commonConfigs = array(

//公共参数

'app_id' => $this->appId,

'method' => 'alipay.trade.app.pay', //接口名称

'format' => 'JSON',

'charset'=>$this->charset,

'sign_type'=>'RSA2',

'timestamp'=>date('Y-m-d H:i:s'),

'version'=>'1.0',

'notify_url' => $this->notifyUrl,

'biz_content'=>json_encode($requestConfigs),

);

$commonConfigs["sign"] = $this->generateSign($commonConfigs, $commonConfigs['sign_type']);

$result = $this->buildOrderStr($commonConfigs);

return $result;

}

public function generateSign($params, $signType = "RSA") {

return $this->sign($this->getSignContent($params), $signType);

}

protected function sign($data, $signType = "RSA") {

$priKey=$this->rsaPrivateKey;

$res = "-----BEGIN RSA PRIVATE KEY-----\n" .

wordwrap($priKey, 64, "\n", true) .

"\n-----END RSA PRIVATE KEY-----";

($res) or die('您使用的私钥格式错误,请检查RSA私钥配置');

if ("RSA2" == $signType) {

openssl_sign($data, $sign, $res, version_compare(PHP_VERSION,'5.4.0', '

} else {

openssl_sign($data, $sign, $res);

}

$sign = base64_encode($sign);

return $sign;

}

/**

* 校验$value是否非空

* if not set ,return true;

* if is null , return true;

**/

protected function checkEmpty($value) {

if (!isset($value))

return true;

if ($value === null)

return true;

if (trim($value) === "")

return true;

return false;

}

public function getSignContent($params) {

ksort($params);

$stringToBeSigned = "";

$i = 0;

foreach ($params as $k => $v) {

if (false === $this->checkEmpty($v) && "@" != substr($v, 0, 1)) {

// 转换成目标字符集

$v = $this->characet($v, $this->charset);

if ($i == 0) {

$stringToBeSigned .= "$k" . "=" . "$v";

} else {

$stringToBeSigned .= "&" . "$k" . "=" . "$v";

}

$i++;

}

}

unset ($k, $v);

return $stringToBeSigned;

}

/**

* 转换字符集编码

* @param $data

* @param $targetCharset

* @return string

*/

function characet($data, $targetCharset) {

if (!empty($data)) {

$fileType = $this->charset;

if (strcasecmp($fileType, $targetCharset) != 0) {

$data = mb_convert_encoding($data, $targetCharset, $fileType);

//$data = iconv($fileType, $targetCharset.'//IGNORE', $data);

}

}

return $data;

}

public function buildOrderStr($data)

{

return http_build_query($data);

}

}

// 是否支付宝客户端

function isInAlipayClient() {

if( strpos($_SERVER['HTTP_USER_AGENT'], 'AlipayClient') !== false ) {

return true;

}

return false;

}

function getCurrentUrl()

{

$scheme = $_SERVER['HTTPS']=='on' ? 'https://' : 'http://';

$uri = $_SERVER['PHP_SELF'].$_SERVER['QUERY_STRING'];

if($_SERVER['REQUEST_URI']) $uri = $_SERVER['REQUEST_URI'];

$baseUrl = urlencode($scheme.$_SERVER['HTTP_HOST'].$uri);

return $baseUrl;

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值