签名 pay package 需要的参数
        详情请参考 支付开发文档

        :param package: 需要签名的的参数
        :return: 可以使用的packagestr

def create_js_pay_package(self, **package):
        """
        签名 pay package 需要的参数
        详情请参考 支付开发文档

        :param package: 需要签名的的参数
        :return: 可以使用的packagestr
        """
        assert self.pay_partner_id, "PAY_PARTNER_ID IS EMPTY"
        assert self.pay_partner_key, "PAY_PARTNER_KEY IS EMPTY"

        package.update({
            'partner': self.pay_partner_id,
        })

        package.setdefault('bank_type', 'WX')
        package.setdefault('fee_type', '1')
        package.setdefault('input_charset', 'UTF-8')

        params = package.items()
        params.sort()

        sign = md5(
            '&'.join(
                [
                    "%s=%s" % (str(p[0]), str(p[1]))
                    for p in params + [('key', self.pay_partner_key)]
                ]
            )
        ).hexdigest().upper()

        return urlencode(params + [('sign', sign)])