github里的大神写的 sdk
https://github.com/zoujingli/WeChatDeveloper
微信支付
微信支付基础参数
$config = [
'token' => 'test',
'appid' => $this->appid,
'appsecret' => $this->secret,
'encodingaeskey' => '',
// 配置商户支付参数(可选,在使用支付功能时需要)
'mch_id' => $this->mch_id,
'mch_key' => $this->key,
// 配置商户支付双向证书目录(可选,在使用退款|打款|红包时需要)
'ssl_key' => './public/cert/apiclient_key.pem',
'ssl_cer' => './public/cert/apiclient_cert.pem',
// 缓存目录配置(可选,需拥有读写权限)
'cache_path' => './runtime',
];
微信支付
// 创建接口实例
$wechat = new \WeChat\Pay($config);
// 组装参数,可以参考官方商户文档
$options = [
'body' => '测试商品',
'out_trade_no' => time(),
'total_fee' => '1',
'openid' => 'o38gpszoJoC9oJYz3UHHf6bEp0Lo',
//JSAPI--JSAPI支付(或小程序支付)、NATIVE--Native支付、APP--app支付,MWEB--H5支付
'trade_type' => 'JSAPI',
'notify_url' => 'http://a.com/text.html',
'spbill_create_ip' => '127.0.0.1',
];
try {
// 生成预支付码
$result = $wechat->createOrder($options);
// 创建JSAPI参数签名
$options = $wechat->createParamsForJsApi($result['prepay_id']);
// @todo 把 $options 传到前端用js发起支付就可以了
} catch (Exception $e) {
// 出错啦,处理下吧
echo $e->getMessage() . PHP_EOL;
}
退款参数
// 创建接口实例
$wechat = new \WePay\Refund($config);
// 组装参数,可以参考官方商户文档
$options = [
'appid' => $this->appid,
'mch_id' => $this->mch_id,
'nonce_str' => $nonce_str,
'out_refund_no' => $out_refund_no,
'refund_fee' => $refund_fee,
'total_fee' => $total_fee,
'transaction_id'=> $transaction_id,
];
try {
// 去退款
$result = $wechat->create($options);
if($result['result_code'] == 'SUCCESS') {
//退款成功
}
} catch (\Exception $e) {
// 出错啦,处理下吧
echo $e->getMessage() . PHP_EOL;die;
}
支付宝支付
支付参数配置(可用沙箱模式)
$config = [
// 沙箱模式
'debug' => true,
// 签名类型(RSA|RSA2)
'sign_type' => "RSA2",
// 应用ID
'appid' => '2016090900468879',
// 支付宝公钥文字内容 (1行填写,特别注意:这里是支付宝公钥,不是应用公钥,最好从开发者中心的网页上去复制)
'public_key' => 'MIIBIjANBgkqhkiG9...',
// 支付宝私钥文字内容 (1行填写)
'private_key' => 'MIIEvQIBADANBgkqh...',
// 应用公钥证书完整内容(新版资金类接口转 app_cert_sn)
'app_cert' => '',
// 支付宝根证书完整内容(新版资金类接口转 alipay_root_cert_sn)
'root_cert' => '',
// 支付成功通知地址
'notify_url' => '',
// 网页支付回跳地址
'return_url' => '',
];
支付宝发起PC网站支付
// 参考公共参数 https://docs.open.alipay.com/203/107090/
$config['notify_url'] = 'http://pay.thinkadmin.top/test/alipay-notify.php';
$config['return_url'] = 'http://pay.thinkadmin.top/test/alipay-success.php';
try {
// 实例支付对象
$pay = We::AliPayWeb($config);
// $pay = new \AliPay\Web($config);
// 参考链接:https://docs.open.alipay.com/api_1/alipay.trade.page.pay
$result = $pay->apply([
'out_trade_no' => time(), // 商户订单号
'total_amount' => '1', // 支付金额
'subject' => '支付订单描述', // 支付订单描述
]);
echo $result; // 直接输出HTML(提交表单跳转)
} catch (Exception $e) {
// 异常处理
echo $e->getMessage();
}
支付宝发起手机网站支付
// 参考公共参数 https://docs.open.alipay.com/203/107090/
$config['notify_url'] = 'http://pay.thinkadmin.top/test/alipay-notify.php';
$config['return_url'] = 'http://pay.thinkadmin.top/test/alipay-success.php';
try {
// 实例支付对象
$pay = We::AliPayWap($config);
// $pay = new \AliPay\Wap($config);
// 参考链接:https://docs.open.alipay.com/api_1/alipay.trade.wap.pay
$result = $pay->apply([
'out_trade_no' => time(), // 商户订单号
'total_amount' => '1', // 支付金额
'subject' => '支付订单描述', // 支付订单描述
]);
echo $result; // 直接输出HTML(提交表单跳转)
} catch (Exception $e) {
// 异常处理
echo $e->getMessage();
}