有乎-价值、共享、信任

What you care about-value, sharing, trust

【支付接口】壹加壹支付调试-集成包

| 阅读:2750 发表时间:2019-07-06 18:12:47 杂项

第一步:引入Common类

class Common {
	
	private $merKey;
	/**
	 * 签名初始化
	 * @param merKey	签名密钥
	 */

	public function __construct($merKey) {
		$this->merKey = $merKey;
	}

	/**
	 * 创建表单
	 * @data		表单内容
	 * @gateway 支付网关地址
	 */
	function buildForm($data, $gateway) {			
			$sHtml = "<form id='payform' name='payform' action='".$gateway."' method='post'>";
			while (list ($key, $val) = each ($data)) {
	            $sHtml.= "<input type='hidden' name='".$key."' value='".$val."'/>";
			}
			$sHtml.= "</form>";
			$sHtml.= "<script>document.forms['payform'].submit();</script>";
			
			return $sHtml;
	}

	/**
	 * @name	准备签名/验签字符串
	 */
	public function prepareSign($data) {
		ksort($data);
		$array = array();
		foreach ($data as $key=>$value) {
			if($value == null) {
				continue;
			}
			array_push($array, $key.'='.$value);
		}
		return implode($array, '&');
	}

	/**
	 * @name	生成签名
	 * @param	sourceData
	 * @return	签名数据
	 */
	public function sign($data) {
		$signature = strtoupper(md5($data.'&key='.$this->merKey));
		return $signature;
	}

	/*
	 * @name	验证签名
	 * @param	signData 签名数据
	 * @param	sourceData 原数据
	 * @return
	 */
	public function verify($data, $signature) {
		$mySign = $this->sign($data);
		if (strcasecmp($mySign, $signature) == 0) {
			return true;
		} else {
			return false;
		}
	}	
}

第二步:传入订单号和金额

$version = "1.8";
// 商户号(支付平台)
$merchant_id = "你的商户ID";
// 商户密钥(支付平台)
$mer_key = "你的KEY";
// 签名类型
$sign_type = "MD5";
// 支付网关地址
$pay_url = "http://pay.yijyipay.com/pay";
// 商户通知地址(请根据自己的部署情况设置下面的路径)
$notify_url = "http://".$_SERVER["HTTP_HOST"]."/yjypay/callback.php";

// 请求数据赋值
$data = array();
$data['version']=$version;
$data['merchantId']=$merchant_id;#商户号
$data['orderId']="传入的订单号";#商户订单号
$data['amount']= "传入的金额";#金额,单位:元
$data['goodsName']='mobile';
$data['payType']='aliscan';
$data['returnUrl']='http://www.flc2226.com/index.php/index/usercenter_cz_czjl'; #前端页面跳转通知地址
$data['notifyUrl']=$notify_url; #支付成功后端回调地址
$data['signType']=$sign_type;

// 初始化
$common = new Common($mer_key);
// 准备待签名数据
$str_to_sign = $common->prepareSign($data);
// 数据签名
$sign = $common->sign($str_to_sign);
$data['sign'] = $sign;
// 生成表单数据,并提交支付网关
exit($common->buildForm($data, $pay_url));

*文章为作者独立观点,不代表【uuuho有乎】的立场
本文由【uuuho有乎】发表并编辑,转载此文章须经作者同意,并请附上出处及本页链接。如有侵权,请联系本站删除。

Who are we?