微信小程序接入支付宝-微信支付打开支付宝小程序么
发布时间:2023-03-09 12:20 浏览次数:次 作者:佚名
写在前面
小程序支付和小程序内APP支付的支付流程和体验基本一致,但是小程序支付无法在小程序内通过扫码、条码等方式进行支付微信小程序接入支付宝,只能调用收银员付款。
接入流程
一、准备工作:
1、在支付宝申请小程序支付权限,参考如何自行申请支付宝小程序支付?
2. 配置应用参数到Ping++管理平台。 具体配置请联系Ping++。
2、下载Ping++最新版H5-SDK,包括“支付宝小程序支付”。
3、下载Ping++的Server-SDK(以PHP为例)
2.获取buyer_user_id参数
因为后台API在使用支付宝小程序通道(alipay_lite)时需要传入buyer_user_id(用户在支付宝中唯一的userId),所以需要先获取该参数,获取方法如下:
① 在小程序客户端通过用户授权获取authCode微信小程序接入支付宝,或参考支付宝官方文档:用户授权
my.getAuthCode({
scopes: 'auth_user',
success: (res) = > {
my.alert({
content: res.authCode,
});
},
});
② 将获取到的authCode传给后台,调用alipay.system.oauth.token(exchange authorized authorized token)接口获取buyer_user_id(对应支付宝的user_id),详见支付宝官方文档:exchange authorized access token
3.服务器端访问
1. 下载Ping++ Server-SDK
2.调用Ping++ SDK创建Charge(同接入其他通道)
$input_data = json_decode(file_get_contents('php://input'), true);
$channel = strtolower($input_data['channel']);
$amount = $input_data['amount'];
$orderNo = substr(md5(time()), 0, 12);
$open_id = $input_data['open_id'];
$extra = array();
switch ($channel) {
case 'alipay_lite':
$extra = array(
'buyer_user_id' => $buyer_user_id //API 请求参数中的 buyer_user_id
);
break;
}
try {
$ch = \Pingpp\Charge::create(
array(
//请求参数字段规则,请参考 API 文档:https://www.pingxx.com/api
'subject' => 'Your Subject',
'body' => 'Your Body',
'amount' => $amount,//订单总金额, 人民币单位:分(如订单总金额为 1 元,此处请填 100)
'order_no' => $orderNo,// 推荐使用 8-20 位,要求数字或字母,不允许其他字符
'currency' => 'cny',
'extra' => $extra,
'channel' => $channel,// 支付使用的第三方支付渠道取值,请参考:https://www.pingxx.com/api#api-c-new
'client_ip' => $_SERVER['REMOTE_ADDR'],// 发起支付请求客户端的 IP 地址,格式为 IPV4,如: 127.0.0.1
'app' => array('id' => APP_ID)
)
);
echo $ch;// 输出 Ping++ 返回的支付凭据 Charge
} catch (\Pingpp\Error\Base $e) {
// 捕获报错信息
if ($e->getHttpStatus() != NULL) {
header('Status: '. $e->getHttpStatus());
echo $e->getHttpBody();
} else {
echo $e->getMessage();
}
}
4.客户端访问
1.将我们之前下载的Ping++ H5 SDK导入到项目中
2.调用Ping++的H5-SDK实现支付功能
// 参数一:支付参数 charge/order/recharge
// 参数二:支付结果回调
pingpp.createPayment(data, function(result, err) {
if (result == "success") {
// 只有微信公众账号 (wx_pub)、微信小程序 (wx_lite)、QQ 公众号 (qpay_pub)、支付宝口碑 (alipay_qr)
// 支付成功的结果会在这里返回,其他的支付结果都会跳转到 extra 中对应的 URL。
} else if (result == "fail") {
// data 不正确或者微信公众账号/微信小程序/QQ 公众号/支付宝口碑支付失败时会在此处返回
} else if (result == "cancel") {
// 微信公众账号、微信小程序、QQ 公众号、支付宝口碑支付取消支付
}
});
这样,支付宝小程序支付就连接成功了!

上一篇
